强参考课程

时间:2014-06-13 09:14:18

标签: java reference java-7 strong-references

为什么jdk1.7中没有java.lang.ref.StrongReference类? (see JDK-6392701

我正在尝试实现一种需要能够以不同参考强度存储对象的行为。所以我的第一个想法是使用Reference<T>类型的字段,并将具有所需强度的Referece设置为。但是没有强引用的类,手动扩展Reference似乎是完全错误的方向。

另一种方法是拥有两个字段,一个是Reference,另一个是所需类型,只有一个集合但Reference强有力地存储这些值会使代码更清洁。

1 个答案:

答案 0 :(得分:2)

  

...并且手动扩展参考似乎是完全错误的方向。

比这更糟糕。根据{{​​3}}:

  

由于引用对象是与垃圾收集器密切配合实现的,因此该类可能不会直接进行子类化。

如果你想在同一个结构中存储多种不同类型的引用,包括strong,那么最好的办法就是制作你自己的引用接口并做两个实现:一个包装Reference<T>和包裹一个普通物体。