3

在 OQL 下执行时,它给出TypeError: [RegExp /java.lang./] is not a function

select filter(heap.classes(), "/java.lang./(it.name)") 

那应该工作吗?引用包中的所有实例的 OQL

另外,我可以知道 OQL 是否是分析堆转储的“标准”吗?

4

1 回答 1

1

看起来:

select filter(heap.classes(), "/java.lang./.exec(it.name)") 

作品。我的 OQL-foo 不是那么强大,但我冒险猜测它与Javascript 错误正则表达式而不是函数有关?.

更新

我似乎能够在 Java 8(使用 Nashorn)上重现该问题,但不能在 Java 7 或更低版本(使用 Rhino)上重现。这是有道理的,因为 Nashorn 实现了 RegExp 不是函数的 ES5 行为,而 Rhino 实现了旧的 Mozilla 行为,它在哪里。

于 2015-07-20T10:54:29.610 回答