Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解释用作参数的getter方法?_Java - Fatal编程技术网

Java 如何解释用作参数的getter方法?

Java 如何解释用作参数的getter方法?,java,Java,我有一点Java代码无法理解。两个类,ClassA和ClassB,结构如下: ClassA { void setName() { this.name = name; } String getName() { return name; } void writeFunction(Object value) { String v = value.toString(); } } 及 我从未见过在没有对

我有一点Java代码无法理解。两个类,
ClassA
ClassB
,结构如下:

ClassA {

    void setName() {
        this.name = name;
    }

    String getName() {
        return name;
    }

    void writeFunction(Object value) {
        String v = value.toString();
    }
}

我从未见过在没有对象引用的情况下使用getter方法,所以我不确定这里发生了什么
getName()
只能引用
ClassA.getName()
。我的理解是,在Java中方法不能作为参数传递,这意味着
writeFunction()
的参数必须是该方法的结果,可能是
this.getName

有人能猜出这里发生了什么吗?如果这意味着什么的话,则涉及JavaBeans和JSP标记库


编辑:为代码添加了详细信息

从定义实例方法的类中调用实例方法,该类在当前实例上调用实例方法(即
this
)。在这里,您对当前
ClassB
对象调用
getName()
(该方法继承自超类
ClassA
),然后将返回值传递给
writeObject

,从定义实例的类中调用实例方法,并在当前实例(即
this
)上调用实例方法。在这里,您对当前的
ClassB
对象调用
getName()
(该方法是从超类
ClassA
继承的),然后将返回值传递给
writeObject
,它使用
this
作为参考。它确实是
this.getName()
。这是不完整的代码。返回类型很重要。也就是说,不,您不能将方法作为参数传递,但可以将它们返回的内容作为参数传递。它使用
this
作为引用。它确实是
this.getName()
。这是不完整的代码。返回类型很重要。也就是说,不,您不能将方法作为参数传递,但可以将它们返回的内容作为参数传递。好的,谢谢!现在我知道发生了什么,我有一个后续问题:在整个代码库中永远不会调用setName(),这是基于对“setName”(“
getName()
setName()
都是普通的getter/setter方法,如上所述。你知道如何
getName()
可能会返回一个非空值吗?好的,谢谢!现在我知道发生了什么,我有一个后续问题:在整个代码库中永远不会调用setName(),这是基于将整件事情都灰显为“setName(”.
getName()
setName()
是上面编辑的普通getter/setter方法。您知道
getName()
如何返回非空值吗?
ClassB extends ClassA {
    ...
    writeFunction( getName() );
    ...
}