Java 比较应该定义的值

Java 比较应该定义的值,java,Java,我有一个pojo,其中一个字段定义为 private Long abcId; 现在在另一个java类中,我正在获取它的值,它存储在一个对象S中,我如下所示获取它,因为我需要测试它的值应该是565869,所以我这样做如下所示,请让我知道这是正确的方法 S.getabcId().equals("465781052")) 您想要类似于: if (S.getabcID().longValue() == 565869L) { //do something } else { //do s

我有一个pojo,其中一个字段定义为

private Long abcId;
现在在另一个java类中,我正在获取它的值,它存储在一个对象S中,我如下所示获取它,因为我需要测试它的值应该是565869,所以我这样做如下所示,请让我知道这是正确的方法

S.getabcId().equals("465781052"))

您想要类似于:

if (S.getabcID().longValue() == 565869L) {
    //do something
} else {
    //do something else
}
编辑:added.longValue()

Long的
equals()
方法检查传递的参数是否为
Long
。因此,对于
String
参数
equals()
将始终返回
false
。把比较做得很好

s.getAbcId().equals(Long.valueOf("105226610"));

为什么不重写pojo中的
equals()
方法?另外,请尝试
Long.toString()
Long
转换为
String
。或
Long.valueOf()
字符串
转换为
Long
(注意可能的异常)。@Aquillo我正在用if检查其他类中的此条件condition@Aquillo请让我知道我的方法是正确的。提前谢谢你写了一个答案;)是,但pojo中的值为长型,请注意,L表示数字为along@TuntunDfddpojo中的值的类型为Long(包装器)not Long(原语)。这是有区别的。那么为什么不做if(s.getabcID().longValue()==565869L)?