我看到一个奇怪的问题。我有一个对象,它有几个实例变量,其中一个是数字的。这个对象是使用 ObjectInputStream 的 readObject() 从套接字中出来的,所以它应该已经被反序列化了。但是,当我使用 == 将它与另一个具有完全相同数字的对象进行比较时,它不匹配。注意:我不是在比较对象,而是使用 getter 比较整数实例变量。在比较之前打印语句,表明它们完全相同。
System.out.println("New book id:"+newBook.getId());
for (Book p: listOfBooks) {
System.out.println("CurrentBook's id:"+p.getId());
if (newBook.getId() == p.getId()) {
System.out.println("Matched CurrentBook's id:"+p.getId())
}
}
谢谢 Ted Hopp,是的,我猜对于与 == 进行整数比较的行为是不一致的。我意识到这些字段是整数,而不是整数,并且它以前有效,所以很困惑为什么它不再有效。