为什么局部变量仍然显示警告虽然值在方法中使用?

问题描述 投票:0回答:2
 boolean flag = false;
 String s1= "Bharath";
 String s2 = null;
 flag = s1.equals(s2);

我在声明时初始化了带有值为false的标志,并且我在相同的方法中使用它但它仍然显示警告。这是什么原因?

java variables compiler-warnings
2个回答
2
投票

你只声明了变量标志,但没有在任何地方使用或读取它,这就是它显示警告的原因。只要把System.out.println(flag);它就会消失。


0
投票

正如评论中已经说过的那样。你已经初始化了变量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;
© www.soinside.com 2019 - 2024. All rights reserved.