[英]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.