gpt4 book ai didi

java - 为什么在 Java 中初始化为 String.toString() 的 'final String' 不被视为常量

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:13 25 4
gpt4 key购买 nike

<分区>

我用 Java 编写了以下代码,运行良好:

public class test {
public static void main(String[] args) {
final String s1 = "s1" ;
final String s2 = "s2" ;

String s = "s1" ;
switch(s) {
case s1 : System.out.println("s1") ;
break ;
case s2 : System.out.println("s2") ;
break ;
}
}
}

但是当我写下面的代码时:

public class test {
public static void main(String[] args) {
final String s1 = "s1".toString() ;
final String s2 = "s2".toString() ;

String s = "s1" ;
switch(s) {
case s1 : System.out.println("s1") ;
break ;
case s2 : System.out.println("s2") ;
break ;
}
}
}

我收到以下错误:

test.java:8: error: constant string expression required
case s1 : System.out.println("s1") ;
^
test.java:10: error: constant string expression required
case s2 : System.out.println("s2") ;

我正在寻找对此的解释,因为我不明白为什么第二个代码会给我这个错误。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com