java.util.NoSuchElementException 原因解析と解決方法
2022-01-21 23:11:30
java 入力ストリームのエラー報告。
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Unknown Source)
Scanner.next(Unknown Source) at java.base/java.util.
Scanner.nextInt(Unknown Source) at java.base/java.util.
at java.base/java.util.Scanner.nextInt(Unknown Source)
- 1
- 2
- 3
- 4
- 5
原因分析。
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--;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
解析してください。iter.next()を2回目に使ったとき、カーソルはすでに次の位置を指していて、途中に余分なnull値があるのです!
2. 関数の中で、宣言が スキャナ オブジェクトを作成し、close メソッドを呼び出すと、スキャナを再び起動したとき (または別の関数でスキャナを再起動したとき)、例外に遭遇することになります!
回避策
1. 原因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--;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2. 原因2のようなクラスは、このように解決することができます。
複数の
Scanner get=new Scanner(System.in);
ただし、iter.close()関数は最後だけ使用します。
または
Scanner get=new Scanner(System.in);
をすべての関数の外層に置き、その前に
static
修飾子を使って、最後に iter.close() 関数を使うだけです!
関連
-
Dateが型に解決できない問題を解決する
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)
-
Javaドッキングリーダの落とし穴について終了コード -1073740940 (0xC0000374)でプロセス終了
-
xxx は型に解決できない エラー解決
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
自動配線された依存性のインジェクションに失敗しました。
-
IDEA パッケージステートメントの欠落
-
このラインで複数のマーカーを解決する方法
-
プラグインの実行は、ライフサイクル構成によってカバーされていません: org.codehaus.mojo:aspectj-maven-plugin:1.3.
-
リソースリーク:'sc'がクローズされない
-
Swagger の @ApiModelProperty オブジェクト フィールドが表示されない
-
Spring MVC アノテーションエラーです。引数型[java.lang.String]の名前が利用できません。
-
VectorのJavaコレクションを徹底解析