返回信息流在java.util.observable里面有个函数是notifyObservers(Object o),由此可见,这个函数的参数应该是一个对象才行。但是,我发现可以传递int类型进去。比如,pos是个int类型,而notifyObservers(pos)是可以的。我在observer的update函数中对其arg1使用getClass发现,pos被自动转换成了Integer。但不管怎样,int类型也不应该作为对象传递给notifyObservers(Object o)函数。这是Java的bug吗?
这是一条镜像帖。来源:北邮人论坛 / java / #25355同步于 2013/5/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
发现Java的一个bug!
drx
2013/5/15镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
不是bug 在1.5 之后 编译器会自动优化 原始类型会自动wrap
【 在 drx 的大作中提到: 】
: 在java.util.observable里面有个函数是notifyObservers(Object o),由此可见,这个函数的参数应该是一个对象才行。但是,我发现可以传递int类型进去。比如,pos是个int类型,而notifyObservers(pos)是可以的。我在observer的update函数中对其arg1使用getClass发现,pos被自动转换成了Integer。但不管怎样,int类型也不应该作为对象传递给notifyObservers(Object o)函数。这是Java的bug吗?
【 在 drx 的大作中提到: 】
: 在java.util.observable里面有个函数是notifyObservers(Object o),由此可见,这个函数的参数应该是一个对象才行。但是,我发现可以传递int类型进去。比如,pos是个int类型,而notifyObservers(pos)是可以的。我在observer的update函数中对其arg1使用getClass发现,pos被自动转换成了Integer。但不管怎样,int类型也不应该作为对象传递给notifyObservers(Object o)函数。这是Java的bug吗?
哈哈哈,可以说object是最基础的类,所有的类都是从object继承的