Typecasting后的比较

时间:2015-11-10 03:45:47

标签: java hibernate csv casting compare

我有一个使用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);
}

我不知道为什么它对某些条目工作正常,而不为其他条目工作。

1 个答案:

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

希望这有帮助