繁体   English   中英

检查样式实例

[英]Checkstyle instanceOf

是否可以使用checkstyle检测实例类型? 例如,我有像这样的代码块

class A {
... 

   private void method test() {
    ....
    throw new MyCustomException("Some message");
  }
}

在这种情况下,我想获得 MyCustomException 的真实实例。 我知道我们可以在自定义插件中使用TokenTypes.LITERAL_NEW ,但在这种情况下,我只能获取异常的名称,而不能获取实例类型(我没有此异常类型的地址)。

由于您想要的是异常的类路径,因此您必须模拟 Java 如何从源代码确定类路径。

这需要您检查导入和包。 您将无法使用 Checkstyle 完全确定这一点,因为它只查看单个文件,而 Java 实际上查看多个文件夹位置,但您可以非常接近。

首先查找具有该确切类名的导入。 如果没有导入,则选择是来自java.lang包还是正在检查的文件的当前包。 您应该为要自动识别的任何java.lang异常(如果有)构建一个列表。 该列表中的任何其他内容都将默认为文件的包声明。

如果您希望查看示例,Checkstyle 中有一些检查可以实现此逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM