我有一个使用hibernate从数据库中获取的列表。
nonretainedObject
ID为Long,Pindex,FIndex,Sindex为整数,Lat,Longt和Alt为大十进制。
另一方面,我有csv文件,其中包含与这些数据库对应的数据。我将逐个从csv文件中导入数据并将其与我的列表进行比较,但不知怎的,我的比较函数不能用作例外。
List<Object[]> tuples = query.list();
for(Object[] tuple : tuples) {
myObj temp = new myObj();
temp.setID(((BigInteger)tuple[1]).longValue());
temp.setPIndex((Integer)tuple[2]);
temp.setFIndex((Integer)tuple[3]);
temp.setSIndex((Integer)tuple[5]);
temp.setLat(((BigDecimal)tuple[6]));
temp.setLongt((BigDecimal)(tuple[7]));
temp.setAlt((BigDecimal)(tuple[8]));
List.add(temp);
}
我不知道为什么它对某些条目工作正常,而不为其他条目工作。
答案 0 :(得分:1)
更改整数比较以使用equals()函数。即integer1.equals(integer2)。您正在使用==比较2个整数对象。这样做时,java会检查对象是否相等。然而,使用equals()方法,它会检查它们的值是否相等
即
Integer a = new Integer(5);
Integer b = new Integer(5);
a.equals(b) will be true
a == b will return false
希望这有帮助