日期:2014-05-20  浏览次数:20709 次

象Integer、Boolean这样的类,居然没有setValue这样的方法
只能在构造方法中设初值
难道偶真的要自己写个类?

还有一个办法,每次改值时新建一个对象,但这样效率较低(浪费存储空间)
还有别的办法吗?谢谢!!

------解决方案--------------------
要完全解释清楚你的问题
需要涉及

封装
不可变(immutable)
工厂方法与实例化控制
实例池与实例复用

等等

当你自己去学了这些,你就知道为什么

简短的回答:

Integer实例建立以后不能再更改,好处很多,最明显的大概就是免费线程安全

当你使用Integer.valueOf()来获取实例,而不是用new的时候,不一定就是每次变数值都建立新的对象,Integer类内部存储一个实例池,好像127以内的数字都是重复使用的,并且如果我没记错的话,这个大小是可以设置的

然后,像Integer这样的简单对象,其建立成本可能比你认为的要低得多。
------解决方案--------------------
引用:
不好意思,java已是偶最熟悉的
通过新建对象,似乎还行
偶寄希望于系统的内存管理(垃圾回收)
与竞争对手相比,偶自以为还是有优势的
偶觉得竞争对手的软件更烂


我顶你!