我使用!=来比较这两个字段,但我发现我必须使用.equals来比较它们。
categoryId.longValue() != PDTO.STOREID
&安培;&安培; categoryId.longValue()!= mDTO.getCategoryId()){
我编辑了这样的代码,但它对我没有帮助,(不能在原始类型上调用equals(long)long)
categoryId.longValue().equals(PDTO.STOREID && categoryId.longValue().equals(mDTO.getCategoryId()){
任何帮助?
答案 0 :(得分:1)
equals
是一个方法,它应该在一个对象上调用 - 在你的例子中,是一个java.lang.Long
的实例。只需删除longValue()
就可以了:
categoryId.equals(PDTO.STOREID) && categoryId.equals(mDTO.getCategoryId())
答案 1 :(得分:1)
将基元与==
进行比较。将对象与equals()
进行比较(否则,您将检查两个变量是否指向完全相同的对象)。所以,要么使用
a.longValue() == b.longValue()
或您使用
a.equals(b);
两者都是等价的(除了第一个将抛出异常,id b为null)。