我正在调查Hotspot-1.8 JVM进行的堆转储。转储为hprof格式,包含数千个lambda实例。
它们都是通过这样的函数创建的:
public class Ref<T> {
private T obj;
void set(final T value) {
obj = value;
singletonMgr.register(() -> Ref.close(value));
}
private static <T> void close(T obj) { /* stuff */ }
}
工作,lambda显示在singletonMgr
管理的列表中。但是除了每个对象获得的<class>
引用之外,它都是空的。我会期望在那里引用value
?
我缺少什么?如何评估每个Lambda的value
?