2016-10-17 20 views
1

有一種簡單的方法(idealy現有的幫助程序庫)檢測java bean的陰影屬性,因爲它具有多級層次結構?檢測陰影的java bean屬性

[C]擴展[B]擴展[A]。 然後定義屬性[A] .firstName。

我想檢測bean在通用jUnit測試中重新定義[C] .firstName(這可能是開發人員錯誤),因此構建過程會捕獲這種「難以發現的錯誤」。

注意:在Eclispe IDE中,這相當於Java/Compiler/Errors/Name陰影和衝突下的「字段聲明隱藏了另一個字段或變量」。

+0

避免這種情況的最佳方法是不繼承。相反,您應該通過接口聲明繼承層次結構,並使用「較低」層次結構層的實例組合實現。 –

+1

檢測此類問題不是UnitTest的任務。 UnitTests檢查代碼的行爲。繼承不是行爲。正確的工具來檢測這將是_findbugs_或_pmd_。 –

回答

2

通常情況下,你不會把它放在單元測試中,而是在你的集成構建過程中放置​​類似Checkstyle的東西,它將標記相同的問題。

+2

_checkstyle_可能不會得到這個,_findbugs_或_pmd_會更好。 –

+2

Checkstyle確實有'HiddenFieldCheck',它看起來應該可以工作,但我同意findbugs也是一件很棒的事情:) – adamreeve