3

是否可以OQL检索属于一个包的所有对象?或者我可以查询wildcards吗?

正如@haridsv 建议的那样,我尝试过:

SELECT * from "com.example.*"

SELECT a from "com\.example\..*"

VisualVM其中抱怨说不存在这样的包裹。

甚至

SELECT a from "java.io.File" a

失败。

谢谢!

塞达诺。

4

3 回答 3

5

您可以像这样使用正则表达式:

SELECT * from "<packagename>.*"

如果包名称是“java.io”,您将使用:

SELECT * from "java\.io\..*"

请注意正则表达式周围的引号以及路径中的点如何受到保护。

于 2012-09-15T17:06:38.707 回答
5

我在VisualVM OQL 帮助中找到了答案。

select filter(heap.classes(), "/com.example./(it.name)")
于 2012-09-17T09:27:16.727 回答
0

来自 VisualVM 有限的文档:

  • 选择所有具有名称模式 java.net.* 的类

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

https://visualvm.github.io/documentation.html

诀窍在于“测试(it.name)”

于 2020-11-18T16:52:56.883 回答