Java 非最终变量如何成为开关常量?

Java 非最终变量如何成为开关常量?,java,switch-statement,constants,final,Java,Switch Statement,Constants,Final,整数i未标记为最终值。(我只是java的初学者。)你把大小写标签和开关操作数搞混了 开关开启一个非常量值没有问题;事实上,没有这一点,开关基本上是无用的。您将大小写标签与开关操作数混淆了 开关开启一个非常量值没有问题;事实上,没有这一点,开关基本上是无用的。您将大小写标签与开关操作数混淆了 开关开启一个非常量值没有问题;事实上,没有这一点,开关基本上是无用的。您将大小写标签与开关操作数混淆了 开关开启一个非常量值没有问题;事实上,没有这一点,switch基本上是无用的。i在这里不是一个“开关常数

整数i未标记为最终值。(我只是java的初学者。)

你把
大小写
标签和
开关
操作数搞混了


开关
开启一个非常量值没有问题;事实上,没有这一点,
开关
基本上是无用的。

您将
大小写
标签与
开关
操作数混淆了


开关
开启一个非常量值没有问题;事实上,没有这一点,
开关
基本上是无用的。

您将
大小写
标签与
开关
操作数混淆了


开关
开启一个非常量值没有问题;事实上,没有这一点,
开关
基本上是无用的。

您将
大小写
标签与
开关
操作数混淆了


开关
开启一个非常量值没有问题;事实上,没有这一点,
switch
基本上是无用的。

i
在这里不是一个“开关常数”,而是被打开的变量。它将打开当前值,就像
if
一样。开关参数不必是最终参数。您的环境中有些不正确。您还可以编写:
switch(new Random().nextInt())
,而不会出现任何问题。但是您不能编写
case new Random().nextInt():
,因为每个
case
都需要一个编译时常量。
i
在这里不是“开关常量”,而是打开的变量。它将打开当前值,就像
if
一样。开关参数不必是最终参数。您的环境中有些不正确。您还可以编写:
switch(new Random().nextInt())
,而不会出现任何问题。但是您不能编写
case new Random().nextInt():
,因为每个
case
都需要一个编译时常量。
i
在这里不是“开关常量”,而是打开的变量。它将打开当前值,就像
if
一样。开关参数不必是最终参数。您的环境中有些不正确。您还可以编写:
switch(new Random().nextInt())
,而不会出现任何问题。但是您不能编写
case new Random().nextInt():
,因为每个
case
都需要一个编译时常量。
i
在这里不是“开关常量”,而是打开的变量。它将打开当前值,就像
if
一样。开关参数不必是最终参数。您的环境中有些不正确。您还可以编写:
switch(new Random().nextInt())
,而不会出现任何问题。但是不能编写
case new Random().nextInt():
,因为每个
case
都需要一个编译时常量。
public class SwitchTest {

public static void main(String[] args) {
    Integer i = new Integer(2) + new Integer(2);

    switch(i){
      case 4: System.out.println("foo"); break;
      default: System.out.println("default"); break;
    }
  }
}