我正在使用 jqassistant 1.8.0 来检测类层次结构中的超级方法调用。即使在应用了 classpath:Resolve 概念之后,类层次结构中的某些方法调用似乎也丢失了。最小设置包括三个类:
public class SuperClass {
void superMethod() {
}
}
public class SubClass1 extends SuperClass {
void subMethod1() {
super.superMethod();
}
}
public class SubClass2 extends SuperClass {
void subMethod2() {
superMethod();
}
}
subMethod1 和 subMethod2 都调用 SuperClass 的同一个方法,但只有一个带有显式“super”的方法。调用具有 :INVOKES 关系。
MATCH
(who)-[:INVOKES]->(m)<-[:DECLARES]-(:Type {fqn: 'SuperClass'})
Return who
在数据库中存在两个具有签名“void superMethod()”的节点,一个由 SuperClass 声明,一个由 SubClass2 声明。似乎缺少一些链接这两种相同方法的步骤。
是否有另一个内置概念(除了类路径:Resolve)解决了这个问题,或者 java-plugin 没有涵盖这个问题?谢谢!