with longValue使用equals来比较两个引用

时间:2014-05-05 19:22:34

标签: java

我使用!=来比较这两个字段,但我发现我必须使用.equals来比较它们。

    categoryId.longValue() != PDTO.STOREID

&安培;&安培; categoryId.longValue()!= mDTO.getCategoryId()){

我编辑了这样的代码,但它对我没有帮助,(不能在原始类型上调用equals(long)long)

    categoryId.longValue().equals(PDTO.STOREID && categoryId.longValue().equals(mDTO.getCategoryId()){

任何帮助?

2 个答案:

答案 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)。