boolean flag = false;
String s1= "Bharath";
String s2 = null;
flag = s1.equals(s2);
我在声明时初始化了带有值为false
的标志,并且我在相同的方法中使用它但它仍然显示警告。这是什么原因?
你只声明了变量标志,但没有在任何地方使用或读取它,这就是它显示警告的原因。只要把System.out.println(flag);
它就会消失。
正如评论中已经说过的那样。你已经初始化了变量flag
,其值为false
,它从未被读过,然后用s1.equals(s2)
覆盖。所以第一次任务是不必要的。
解决方法:在需要时为变量分配值。如果不必要,请不要为变量指定默认值。
例1:
boolean flag;
String s1 = "Bharath";
String s2 = null;
flag = s1.equals(s2);
例2:
String s1 = "Bharath";
String s2 = null;
boolean flag = s1.equals(s2);
如果变量具有“固定”值且没有缩进更改,您还可以使用final
关键字。
final boolean flag;
String s1 = "Bharath";
String s2 = null;
// flag will never change
flag = s1.equals(s2);
// not allowed, because final
// flag = true;