Получить статические поля класса в кучи Dump в OQL
-
09-10-2019 - |
Вопрос
У меня есть свалка кучи, и я использую Eclipse Mat, хотя я полагаю, что это должно работать через VisualVM или любой любой OQL клиент.
Мы можем выбрать поля всех экземпляров класса, делая что-то вроде
select s.field1, s.field2 from org.me.MyClass
... Но это ограничивается переменными-членами и тирам с экземплярами.
Как можно выбрать статические поля класса без экземпляров?
Это несколько связано с Этот другой вопрос.
Решение
Для доступа к статическому полю «реквизиты» класса Java.lang.system вы можете использовать (в VisualVM)
select heap.findClass("java.lang.System").statics.props
select heap.findClass("java.lang.System").props
Другие советы
Это немного взлома, но работает на коврике:
SELECT c.SIZE
FROM INSTANCEOF java.lang.Class c
WHERE c.@displayName.contains("class java.lang.Integer ")
Не связан с StackOverflow