gpt4 book ai didi

javascript - VisualVM v1.4.4 中的 OQL - 获取类的字段名称

转载 作者:行者123 更新时间:2023-11-30 19:00:18 26 4
gpt4 key购买 nike

我想execute an OQL query在 VisualVM (v1.4.4) 中检索对象的(非静态)字段名称。

OQL 文档描述了 heap.findClass(className) .这将返回一个包含 fields 的对象属性(字段名称数组)。

当我执行以下 OQL 时...

heap.findClass('java.io.ByteArrayInputStream').fields;

...它返回一个包含 4 个字段对象的数组(ByteArrayInputStream has 4 fields - bufcountmarkpos - 我假设返回的是这些):

org.netbeans.lib.profiler.heap.HprofField@56de8c
org.netbeans.lib.profiler.heap.HprofField@56de95
org.netbeans.lib.profiler.heap.HprofField@56de9e
org.netbeans.lib.profiler.heap.HprofField@56dea7

如果我随后尝试操作此数组,例如访问每个字段的 namesignature属性(如 OQL 文档中所述),我没有得到任何结果。我什至无法获得数组的长度。例如:

heap.findClass('java.io.ByteArrayInputStream').fields.length;

和:

heap.findClass('java.io.ByteArrayInputStream').fields[0];

以上两个语句都返回<no results> .

我做错了什么? 可能是一些基本的问题。就此而言,我不太熟悉 JavaScript - 或者数据在 VisualVM 中的显示方式。

最佳答案

您需要使用 map()功能。以下 OQL 检索 ByteArrayInputStream 类的字段名称:

select map(heap.findClass('java.io.ByteArrayInputStream').fields, 'it.name')

关于javascript - VisualVM v1.4.4 中的 OQL - 获取类的字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59582670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com