检查类是否间接继承了另一类型的类



我正在写一个自定义检查,看看一些类是否符合我们的体系结构,其中一条规则规定,如果一个类的名字有一个特定的前缀,它必须直接或间接地继承特定类型的servlet。


可用的检查不包括这种情况,间接继承被证明是一个挑战,因为它无法找到一种方法来获得第一个继承类的Ast树,所以模式如下:

  • dummyClass1扩展dumDummy
  • dumDummy扩展了realyImportantClass

未被检查。问题是:

  1. 如何访问继承类的Ast树?
  2. 第一个想法是得到。class到第一个继承的类,并检查它,它可以做到吗?
  3. 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)

相关内容

  • 没有找到相关文章

最新更新