【发布时间】:2018-04-20 11:05:08
【问题描述】:
我已经编写了一个规则来检查一个非扩展类是否是最终的。 我已经使用 ClassTree.symbol().usages() 来检查它是否被使用:
public List<Kind> nodesToVisit() {
// TODO Auto-generated method stub
return ImmutableList.of(Tree.Kind.CLASS);
}
public void visitNode(Tree ttree) {
ClassTree tree = (ClassTree) ttree;
List<IdentifierTree> itl = tree.symbol().usages();
System.out.println(itl.size());
}
当我在这里测试规则时:
public class Class1 {
}
public class Class2 {
}
public class Class3 extends Class1 {
}
Class1 用法 = 1 Class2 和 Class 3 用法 = 0;
只有当我在一个文件中定义三个类时,这才有效,在一个类中。 当我在声纳 Class1 中对此进行测试时,Class2 和 Class3 是项目的独立类,结果是:即使 Class1 被 Class3 扩展,Class1、Class2 和 Class3 的用法 = 0。
我该如何解决?
提前致谢
【问题讨论】:
-
他们也有不同的包吗?他们都有公共标识符吗?