Java 如何解释用作参数的getter方法?
我有一点Java代码无法理解。两个类,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(); } } 及 我从未见过在没有对
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() );
...
}