Получить статические поля класса в дамп кучи в OQL

У меня есть дамп кучи, и я использую Eclipse MAT, хотя я предполагаю, что это должно работать через visualvm или любой другой OQL-клиент.

Мы можем выбрать поля всех экземпляров класса, выполнив что-то вроде

select s.field1, s.field2 from org.me.MyClass

... но это ограничено переменными-членами и типами с экземплярами.

Как выбрать статические поля класса без экземпляров?

Это в некоторой степени связано с другим вопросом.

2 ответа

Решение

Для доступа к статическому полю 'props' класса java.lang.System вы можете использовать (в 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 ")
Другие вопросы по тегам