【发布时间】:2011-07-13 22:36:45
【问题描述】:
我想从另一个类中访问一个公共整数,以便在 switch 语句中使用,如下所示:
StateManager sm = new StateManager(0);
switch (localState) {
case (sm.ALL_COMPANIES_REQUEST): {
//do something
}
case (sm.GENERAL_TICKER_REQUEST): {
//do this instead
}
但是,这些变量需要被多个线程访问,所以我不想让它们成为静态的。不幸的是,我收到一个错误,说 case 表达式必须是常量。没有改变这些变量的方法,它们是恒定的,但似乎如果不标记它们static,计算机就无法弄清楚这一点。有谁知道如何解决这个问题?
编辑: 嵌套类怎么样,这是一个选项,因为 StateManager 只对上面带有 switch 语句的类有用。这足以单独使用 final 吗?
【问题讨论】:
标签: java static switch-statement