我有一个堆转储,我正在使用 Eclipse MAT,但我想这应该通过 visualvm 或任何 OQL 客户端工作。
我们可以通过执行类似的操作来选择类的所有实例的字段
select s.field1, s.field2 from org.me.MyClass
...但这仅限于成员变量和带有实例的类型。
如何选择没有实例的类的静态字段?
我有一个堆转储,我正在使用 Eclipse MAT,但我想这应该通过 visualvm 或任何 OQL 客户端工作。
我们可以通过执行类似的操作来选择类的所有实例的字段
select s.field1, s.field2 from org.me.MyClass
...但这仅限于成员变量和带有实例的类型。
如何选择没有实例的类的静态字段?
要访问 java.lang.System 类的静态字段“props”,您可以使用(在 VisualVM 中)
select heap.findClass("java.lang.System").statics.props
select heap.findClass("java.lang.System").props
这有点骇人听闻,但适用于 MAT:
SELECT c.SIZE
FROM INSTANCEOF java.lang.Class c
WHERE c.@displayName.contains("class java.lang.Integer ")