我正在写一个自定义检查,看看一些类是否符合我们的体系结构,其中一条规则规定,如果一个类的名字有一个特定的前缀,它必须直接或间接地继承特定类型的servlet。
可用的检查不包括这种情况,间接继承被证明是一个挑战,因为它无法找到一种方法来获得第一个继承类的Ast树,所以模式如下:
- dummyClass1扩展dumDummy
- dumDummy扩展了realyImportantClass
未被检查。问题是:
- 如何访问继承类的Ast树?
- 第一个想法是得到。class到第一个继承的类,并检查它,它可以做到吗?
- Checkstyle可以得到Ast树从一个。class文件?
提前感谢,如果问题不清楚请提醒我,我很乐意提供尽可能多的信息
检查方法如下:
Class<?> dummyClass = DummyClass1.class;
Class<?> reallyImportantClass = ReallyImportantClass.class;
if(reallyImportantClass.isAssignableFrom(dummyClass)){
return true;
}else{
return false;
}
看:http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html isAssignableFrom (. lang . class)