【发布时间】:2017-02-27 00:11:54
【问题描述】:
是否有一种简单的方法(最好是现有的帮助程序库)来检测具有多层次层次结构的 java bean 的阴影属性?
[C] 扩展 [B] 扩展 [A]。 然后定义属性 [A].firstName。
我想检测 [C].firstName 在通用 jUnit 测试中重新定义的 bean(这可能是开发人员错误),因此构建过程会捕获这种“难以发现的错误”。
注意:在 Eclispe IDE 中,这相当于 Java/Compiler/Errors/Name 阴影和冲突下的“字段声明隐藏另一个字段或变量”。
【问题讨论】:
-
避免这种情况的最佳方法是不继承。相反,您应该通过接口声明继承层次结构,并使用“较低”层次结构的实例来组合实现。
-
检测此类问题不是 UnitTest 的任务。 UnitTests 检查代码的行为。继承不是行为。检测这种情况的正确工具是 findbugs 或 pmd。
标签: java inheritance recursion javabeans introspection