java.util.NoSuchElementException原因及兩種解決方法
java輸入流報錯:
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Unknown Source)
at java.base/java.util.Scanner.next(Unknown Source)
at java.base/java.util.Scanner.nextInt(Unknown Source)
at java.base/java.util.Scanner.nextInt(Unknown Source)
原因分析:
1、可能是因為迭代器多用了一次,指向空!
例如:
Scanner iter=new Scanner(System.in);
while(iter.hasNext()) {
ArrayList<SprintUserStory> undoneUserStoriesList = SprintUtil.getUndoneUserStoriesList(iter.next().getID(),iter.next().getPkey());
if(undoneUserStoriesList.size() >0){
willdonefeautre--;
}
}
分析:第二次使用 iter.next() 時,游標已經(jīng)指向下一個位置了,中間多出來一個空值!
2、在函數(shù)中,聲明了一個 scanner 對象,并且調(diào)用了 close 方法,再次啟動 scanner 的時候(或者在另一個函數(shù)中重新啟動 scanner 時),就會遇到異常!
解決方法:
1、類如原因一的可以這樣解決,把 iter.next() 賦給一個中間變量:
Scanner iter=new Scanner(System.in);
while (iter.hasNext()) {
JIRAFeature jirafeaturetemp = iter.next();
ArrayList<SprintUserStory> undoneUserStoriesList = SprintUtil.getUndoneUserStoriesList(jirafeaturetemp.getID(),jirafeaturetemp.getPkey());
if(undoneUserStoriesList.size() >0){
willdonefeautre--;
}
}
2、類如原因二的可以這樣解決:
使用多次Scanner get=new Scanner(System.in); 但是只在最后使用 iter.close() 函數(shù);
或者將Scanner get=new Scanner(System.in); 放在所有函數(shù)外層,同時在前面加上static修飾符,并且只在最后使用 iter.close() 函數(shù)!
到此這篇關(guān)于java.util.NoSuchElementException原因及兩種解決方法的文章就介紹到這了,更多相關(guān)java.util.NoSuchElementException報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java+MySql圖片數(shù)據(jù)保存與讀取的具體實例
之前一直沒有做過涉及到圖片存儲的應(yīng)用,最近要做的東東涉及到了這個點,就做了一個小的例子算是對圖片存儲的初試吧2013-06-06
Kafka消費客戶端協(xié)調(diào)器GroupCoordinator詳解
這篇文章主要為大家介紹了Kafka消費客戶端協(xié)調(diào)器GroupCoordinator使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
SpringBoot實現(xiàn)二維碼掃碼登錄的原理及項目實踐
本文主要介紹了SpringBoot實現(xiàn)二維碼掃碼登錄的原理及項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-04-04
java實現(xiàn)浮點數(shù)轉(zhuǎn)人民幣的小例子
java實現(xiàn)浮點數(shù)轉(zhuǎn)人民幣的小例子,需要的朋友可以參考一下2013-03-03

