我正在使用Primefaces 3.4在JSF 2中工作,我发现了一个例子,其中我的xhtml中的'=='在Java中的行为与'=='不同。我在Java EE 6文档中找不到'=='运算符的详细信息。它到底是做什么的? EL中的对象是否有等效的Java'=='?
答案 0 :(得分:2)
EL中的对象是否有等效的Java'=='
看起来不是,但你真的不需要它。在比较对象引用时,EL ==
(和eq
)将使用equals
方法,并且它已经支持null
比较。如果您的类碰巧没有覆盖equals
,那么它将使用Object#equals
结束使用Java ==
进行相等性检查。
如果您的类恰好覆盖equals
方法,请务必编写一个好的实现。例如:
public boolean equals(Object o) {
if (o == null) {
return false;
}
if (this == o) {
return true;
}
if (...) {
//add here the rest of the equals implementation...
}
return false;
}
更多信息: