Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java eclipse在编译之前比较静态值吗?_Java_String - Fatal编程技术网

Java eclipse在编译之前比较静态值吗?

Java eclipse在编译之前比较静态值吗?,java,string,Java,String,在这个字符串中,eclipse显示关于“不匹配”的死代码警告 它是否在编译之前检查字符串 String a = ("goodString".equals("goodString")) ? "Condition Macth" : "Not Match"; 如果我改为.等于警告关闭。Eclipse可能会分析您的代码以检测死代码 在这种特殊情况下,它显示警告,因为这些值始终具有相同的标识,因此条件始终为真。Eclipse检测到这一点并发出警告 如果使用equals,则比较不再是一个常量表达式(),也

在这个字符串中,eclipse显示关于“不匹配”的死代码警告

它是否在编译之前检查字符串

String a = ("goodString".equals("goodString")) ? "Condition Macth" : "Not Match";

如果我改为.等于警告关闭。

Eclipse可能会分析您的代码以检测死代码

在这种特殊情况下,它显示警告,因为这些值始终具有相同的标识,因此条件始终为真。Eclipse检测到这一点并发出警告

如果使用
equals
,则比较不再是一个常量表达式(),也不再保证返回
true
。因此,警告消失了


顺便说一下,您应该始终使用
equals
来比较字符串

String b = ("goodString")==("goodString") ? "Condition Macth": "Not Match";

在这里,EclipseIDE足够聪明,可以找到死代码。若发现“If”条件始终为true,那个么它会以死代码的形式警告“else”部分,因为它永远不会被执行。在此代码段中,三元条件始终为真,因此显示死代码警告

您是指“EclipseIDE”(显示静态检查警告)还是“(Eclipse)Java编译器”(即,它是否会影响编译的方式)?对于“实际”字符串比较,您将使用
equals
。我想你的问题也可以延伸到这一点。请投编辑一票!由于equals是一个方法而不是一个常量表达式,因此eclipse不再能够确定死代码。这就清楚了!:)
String b = ("goodString")==("goodString") ? "Condition Macth": "Not Match";