技术 #提问# 有没有大佬,帮我看看...的全部评论

技术 #提问# 有没有大佬,帮我看看...的全部评论
6个评论
卑微的打工仔
Java后端

是不是在反序列化过程中,强制转为int类型了?

2022-12-05
桉
运维工程师

打印出反序列化的之后变量的类型看一下,是不是同种类型的

2022-12-05
卑微的打工仔
都是Integer
2022-12-05

不应该呀😂

2022-12-05
卑微的打工仔
我也纳闷,昨天想了一晚上为什么。
2022-12-06

看见编辑器提供的黄色警告标识了不?好好按照建议调整下

2022-12-05
卑微的打工仔
好的,皮总。[捂脸]
2022-12-05
yes
一起加油

要不试试.equal,我猜编译器就是这么提示你的[发呆]

2022-12-05
卑微的打工仔
equals确实可以,但是Integer和int之间有自动拆装箱,如果是两个new对象对象,获取他们的getID再通过==是为true的,就是反序列化就不行了。
2022-12-06
卑微的打工仔
Java后端

问题解决了,问题出现在objectOutputStream.writeObject(next),虽然在赋值的时候赋的是1 这里就是int类型,通过反序列化时在读取ID时由于是对象流就相当于new Integer(1)所以就就必须使用equals进行比较。两个对象通过getId进行==比较为true,那是因为赋值类似就是int 类型可使用==进行比较。这里不懂可以看一下图,实际开发中可不能new Intege (1) 进行赋值哈。

2022-12-06
下载 APP