为什么jdk1.7中没有java.lang.ref.StrongReference
类? (see JDK-6392701)
我正在尝试实现一种需要能够以不同参考强度存储对象的行为。所以我的第一个想法是使用Reference<T>
类型的字段,并将具有所需强度的Referece设置为。但是没有强引用的类,手动扩展Reference
似乎是完全错误的方向。
另一种方法是拥有两个字段,一个是Reference
,另一个是所需类型,只有一个集合但Reference
强有力地存储这些值会使代码更清洁。
答案 0 :(得分:2)
...并且手动扩展参考似乎是完全错误的方向。
比这更糟糕。根据{{3}}:
由于引用对象是与垃圾收集器密切配合实现的,因此该类可能不会直接进行子类化。
如果你想在同一个结构中存储多种不同类型的引用,包括strong,那么最好的办法就是制作你自己的引用接口并做两个实现:一个包装Reference<T>
和包裹一个普通物体。