我需要将一些数据与其生命周期内的密钥相关联,因此我使用的是WeakHashMap
. 但是,除此之外,我还需要通过其对应的值获取一个键。最简单的方法是在创建值时保持引用:
public class Key {}
public class Value {
final public Key key;
public Value(Key k) {
key = k;
}
}
当然,当我Value
在我的程序中使用时,它key
不会消失。但是,如果在 map 之外没有更多对键或其值的引用,它会被垃圾回收吗?还是值中幸存的强引用阻止了它?