首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Checkstyle,StringLiteral

Checkstyle,StringLiteral
EN

Stack Overflow用户
提问于 2013-01-30 19:39:44
回答 1查看 145关注 0票数 0
代码语言:javascript
复制
public void visitToken(DetailAST aAST) {}

我正在尝试编写一个自定义的校验样式规则。我对TokenTypes.STRING_LITERAL感兴趣。这种方法的问题是,字符串可能是连接的字符串、StringBuffer、StringBuilder,也可能在方法中。

请原谅我,因为我是一个菜鸟的车臣风格的编码。

  1. 如何获得一个完整的字符串,如果它是连接。aAST似乎把它们作为单独的字符串字面值来吐出来。
  2. 还有别的方法可以抓住一个完整的字符串吗?

任何指点,都非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-30 22:29:56

这在Checkstyle中很难做到,因为Checkstyle完全是在AST上工作的。它不是编译器,所以它不知道运行时类型或语法意义。

因此,为了使用Checkstyle实现这一点,您必须手动分析AST并手工构建连接字符串。如果字符串的部分是由静态方法或使用StringBuilder/StringBuffer生成的,那么我会说,通过AST分析找到完整字符串的任务实际上是不可能的。

相反,您可能希望查看其他可能更适合您的任务的静态代码分析工具。例如,FindBugs在编译的代码上工作,通常能够执行相当复杂的检查。但是,运行FindBugs需要比Checkstyle更多的资源,而且在旧机器上,您可能无法让FindBugs在您的IDE中的保存上自动运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14612275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档