public void visitToken(DetailAST aAST) {}我正在尝试编写一个自定义的校验样式规则。我对TokenTypes.STRING_LITERAL感兴趣。这种方法的问题是,字符串可能是连接的字符串、StringBuffer、StringBuilder,也可能在方法中。
请原谅我,因为我是一个菜鸟的车臣风格的编码。
任何指点,都非常感谢。
发布于 2013-01-30 22:29:56
这在Checkstyle中很难做到,因为Checkstyle完全是在AST上工作的。它不是编译器,所以它不知道运行时类型或语法意义。
因此,为了使用Checkstyle实现这一点,您必须手动分析AST并手工构建连接字符串。如果字符串的部分是由静态方法或使用StringBuilder/StringBuffer生成的,那么我会说,通过AST分析找到完整字符串的任务实际上是不可能的。
相反,您可能希望查看其他可能更适合您的任务的静态代码分析工具。例如,FindBugs在编译的代码上工作,通常能够执行相当复杂的检查。但是,运行FindBugs需要比Checkstyle更多的资源,而且在旧机器上,您可能无法让FindBugs在您的IDE中的保存上自动运行。
https://stackoverflow.com/questions/14612275
复制相似问题