在JAVA中,我给我的对象提供了id号(int)。我想比较给定的对象是否是预期的对象。
我应该使用哪个?哪个更快?
if(civ!=this)
或
if(civ.id!=id)
编辑:
其他信息:
Class Civ {
int id;
public Civ(int i){
id = i;
}
public boolean checkIfOther(Civ civ){
此:
return (civ.id !=id);
或者这个:
return(civ !=this);
-
}
}
答案 0 :(得分:6)
civ != this
比civ.id != id
快(几乎毫无察觉地)。但是,请注意,只有civ
与this
是同名时,两者才是相同的。参见以下示例:
String a = new String("hello")
String b = a;
a == b // true
String c = new String("hello")
a == c // false!
例如,如果您是从数据库中加载civ
,或者根据用户输入来构造它,或者以其他方式(除了直接从this
分配它(反之亦然)创建它),第一种方法将失败,因为它们两个不同的(即使可能相等)对象。如果不确定,请使用id
以确保安全。