我有以下代码:
public static boolean isRelated(Animal first, Animal second){
boolean result=false;
if(first(parentA).equals(second(parentA)))
result=true;
return result;
}
基本上,我需要能够从这个静态方法访问Animal类中的父A实例变量。
我理解,要在静态方法中访问实例变量,您需要创建一个对象,但我已经有2个引入。(Parent A和Parent B)
你能告诉我这里的问题是什么吗?
答案 0 :(得分:0)
if(first(parentA).equals(second(parentA)))
基本上,我需要能够从这个静态方法访问Animal类中的父A实例变量。
这不是访问实例成员的正确语法
应该是
if(first.parentA.equals(second.parentA))
更多使用setter和getter来访问数据
public class Animal {
private String parentA;
// code
public String getParentA() {
return parentA;
}
public void setParentA(String parentA) {
this.parentA = parentA;
}
}
}
然后使用第if(first.getParentA().equals(second.getParentA()))
行
答案 1 :(得分:0)
要访问实例变量,您需要使用实例。只要您有一个,就不必在每次需要时创建它。
代码:
if(first.getParentA().equals(second.getParentA()))
在这种情况下,您需要确保在比较之前first.getParentA()
不是null
(否则您将获得NPE)
答案 2 :(得分:0)
静态方法在方法区域中创建,并且是第一个创建的方法。创建静态方法后,在堆中创建实例变量。因此,无法直接访问实例变量。始终使用对象来访问这些变量。