我试图用方法比较两个int值。
我已经将两个get方法放在一起,因为array [i]是person对象的列表,gethouse只给出house对象,houseid在另一个类中。
我想知道我是否可以在彼此之后设置两个get()方法?
public Person findperson( int houseId ){
for ( int i = 0; i < array.length; i++ ){
if ( array[ i ].gethouse().gethouseID() == houseId ){
return array[ i ];
}
}
return null;
}
答案 0 :(得分:1)
如果您的house
类(从gethouse()
返回的任何内容实现gethouseID(),则array[i]
处的人员实例不为空,并且gethouse()
返回非空的内容这样可以正常工作。否则,这将导致编译失败,或者在运行时使用空指针异常。你更安全地获取此人,检查它是否为空,得到房子,检查它是否为空,然后获取houseID并与你正在寻找的那个进行比较。
答案 1 :(得分:1)
你可以这样做。
但我不认为这是好习惯。
a.getB().getC().getD()
,则其中任何一个都可以返回null。您无法分辨生成的堆栈跟踪中返回的null(不包括最后一次返回null的调用,这很好)。您可能希望在此方案中使用null object pattern。Person
对象完成繁重的任务。答案 2 :(得分:0)
首先得到一个Person对象,然后通过调用gethouse()得到一个house对象,然后调用gethouseID()来获取Integer。 这应该是绝对可能的。