Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在mateclipse中使用OQL进行嵌入式查询_Java_Eclipse_Oql - Fatal编程技术网

Java 如何在mateclipse中使用OQL进行嵌入式查询

Java 如何在mateclipse中使用OQL进行嵌入式查询,java,eclipse,oql,Java,Eclipse,Oql,我可以使用下面的查询获得所有线程对象 SELECT OBJECTS dominators(s) FROM java.lang.Thread s 然后,如果我想进一步分析返回的结果对象,我认为OQL应该如下所示: SELECT * from (SELECT OBJECTS dominators(s) FROM java.lang.Thread s) 但它变成了ClassCastException Problem reported: ClassCastException occured. Re

我可以使用下面的查询获得所有线程对象

SELECT OBJECTS dominators(s) FROM java.lang.Thread s
然后,如果我想进一步分析返回的结果对象,我认为OQL应该如下所示:

SELECT * from (SELECT OBJECTS dominators(s) FROM java.lang.Thread s)
但它变成了ClassCastException

Problem reported: 
ClassCastException occured. Remember: sub queries with the modifier INSTANCESOF or INCLUDING SUBCLASSES must return only class objects 

java.lang.ClassCastException: org.eclipse.mat.parser.model.InstanceImpl cannot be cast to org.eclipse.mat.snapshot.model.IClass
    at org.eclipse.mat.parser.internal.oql.OQLQueryImpl.doSubQuery(OQLQueryImpl.java:752)
    at org.eclipse.mat.parser.internal.oql.OQLQueryImpl.internalExecute(OQLQueryImpl.java:642)
    at org.eclipse.mat.parser.internal.oql.OQLQueryImpl.execute(OQLQueryImpl.java:627)
    at org.eclipse.mat.inspections.OQLQuery.execute(OQLQuery.java:50)
    at org.eclipse.mat.inspections.OQLQuery.execute(OQLQuery.java:1)
    at org.eclipse.mat.query.registry.ArgumentSet.execute(ArgumentSet.java:129)
    at org.eclipse.mat.ui.snapshot.panes.OQLPane$OQLJob.doRun(OQLPane.java:339)
    at org.eclipse.mat.ui.editor.AbstractPaneJob.run(AbstractPaneJob.java:34)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

MAT Eclipse中的OQL是否支持嵌入式查询?如何获得所需的结果?

使子查询工作起来有点棘手。请尝试以下操作:

SELECT * from OBJECTS (SELECT OBJECTS dominators(s) FROM java.lang.Thread s)
我从以下链接获得了解决方案:

正如消息中所说并有文档记录的那样,子查询必须返回类对象,请参见此处:也许您可以说明您试图通过这样的查询实现什么?是否要查看处于支配地位的线程?