[英]Why do I get warning “dead code”?
public class DeadCodeInLuna {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String string;
for (string = in.readLine(); !string.equals(""); string=in.readLine()) {
if(string == null) {
System.out.println("null while reading response!");
}
}
}
}
因为!string.equals("")
计算为true
所以string
永远不能为null
。
换句话说,当!string.equals("")
为true
,保证string
不为null
否则将发生NullPointerException
。
因为在代码的那一点, string
不能为空。 如果它出来null
从in.readLine()
你会得到一个NullPointerException
的条件检查for
。
更改为
for(string=in.readLine();!"".equals(string);string=in.readLine())
if(string==null) System.out.println("null while reading response!");
}
不管string
是否为null,在equals
都将起作用的地方,您将看到警告消失。
在您的情况下,请避免将string == null
for (string = in.readLine(); !string.equals(""); string=in.readLine()) {
// ^--------> here!!!
所以if(string == null)
是多余的,永远不会为真
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.