我想從另一個類訪問公共整數用於下面的switch語句:表達式中的非靜態變量?
StateManager sm = new StateManager(0);
switch (localState) {
case (sm.ALL_COMPANIES_REQUEST): {
//do something
}
case (sm.GENERAL_TICKER_REQUEST): {
//do this instead
}
然而,這些變量需要被多個線程訪問,所以我不想讓他們靜態的。不幸的是,我得到一個錯誤,說案例表達式必須是不變的。沒有方法可以改變這些變量,它們是不變的,但似乎沒有標記它們,計算機無法弄清楚。任何人都知道如何解決這個問題?
編輯: 如何嵌套類,這是一個選項,因爲StateManager實際上只對具有上述switch語句的類有用。這是否足以單獨使用最終?
哦好吧,我認爲這可能會導致線程鎖定。謝謝您的幫助! – providence 2011-03-12 05:47:09
這是錯誤的?答案或我的假設? – providence 2011-03-12 06:12:01
你的假設,你會有問題,使用來自多個線程的靜態final是不正確的。 – 2011-03-12 06:41:42