[英]Scanner hangs on user input
我被困住了,無法弄清楚為什么輸入掃描器掛起,等待新輸入。 誰能看到我想念的或沒有做的? 我知道這很愚蠢,謝謝!
while (more == true){
str = "";
val = "";
System.out.println("Enter a Constructor argument type : ");
try {
str = input.nextLine();
} catch (Exception e) {
more = false; input.close();
}
if ( str.isEmpty() || str.equals("") || (str == null) ) {
more = false;
}
else{
arguments.add(str);
System.out.println("Enter it's value : ");
try {
val = input.nextLine();
} catch (Exception e) {
more = false;
}
if ( val.equals("") || (val == null) || val.isEmpty() ) {
more = false;
}
else{
values.add(val);
}
}
}
if(str.isEmpty()|| str.equals(“”)||(str == null))
這條線沒有意義。 如果要防御性編程,請始終先檢查對象是否為null。 如果str為null,則行將拋出NPE,而不僅僅是將變量more設置為false。 我的建議是如何更改此行:if(str == null || str.isEmpty()|| str.equals(“”))或僅使用if(StringUtils.isEmpty(str))
出於相同的原因,“ if(val.equals(“”)||(val == null)|| val.isEmpty())”行也可以僅替換為“ if(StringUtils.isEmpty(val))”。 。
如果要在控制台中結束輸入,請嘗試為EOF傳遞“ Ctrl + Z”組合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.