我有一個類,類似於此,findbugz是抱怨(initialize()
,並且killStaticfield()
)「從實例方法寫入靜態字段」。我無法在ctor中設置靜態字段。解決這個'從實例方法'寫入靜態字段findbugs警告的最好方法是什麼?
- ,這是什麼問題的最佳解決?
是否將staticField放入AtomicReference中就足夠了?
public class Something { private static SomeClass staticField = null; private AnotherClass aClass; public Something() { } public void initialize() { //must be ctor'd in initialize aClass = new AnotherClass(); staticField = new SomeClass(aClass); } public void killStaticField() { staticField = null; } public static void getStaticField() { return staticField; } }
爲什麼它必須是'在首位static'?什麼是功能要求?你以任何方式理解「靜態」是什麼意思?用你自己的話說出來? – BalusC 2010-09-02 19:28:44
是的,當然我知道什麼是靜態的意思;不,我不需要證明給你。 – darrickc 2010-09-02 19:59:06
要回答你的問題,這個字段是靜態的,因爲get方法需要是靜態的,所以其他對象可以訪問staticField而不必引用Something對象。 – darrickc 2010-09-02 20:07:07