【发布时间】:2015-07-23 00:47:34
【问题描述】:
我有一个需求,想扫描一个java(POJO)文件的目录,遍历它们,找出那些POJO中定义的相应变量,并检查它是否具有正确的getter和setter名称。例如:- 如果empName 是变量名,那么它应该具有getEmpName() 而不是getempName() 的getter。
这是因为我们在很久以前构建的 J2EE 应用程序由于使用了无效的 getter 和 setter 而开始失败,而前端技术无法识别这些。
我已经完成了一个可以确定这一点的基本程序。我的确切问题是我可以在什么基础上识别一行中的变量。在我的逻辑中,我假设包含private 关键字的行中的第三个单词将是变量名。只是想知道这种方法是否正确,还是我需要尝试不同的方法,因为似乎要求非常通用。
【问题讨论】:
-
不要将源文件扫描为文本。使用反射。
-
我不确定,但 apache-commons-beanutils 可能有这样的东西
-
使用 checkstyle 之类的代码分析工具可能更容易做到这一点。
-
谢谢大家,让我试试上面的建议,同时@Qwerky,是否可以设置诸如通过checkstyle或sonar识别getter之类的规则?
-
是的,标准 JEE 或自定义一个