質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

852閲覧

superCsv:エラーが出てくる原因がわかりません。

Emine

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/04/21 13:17

編集2018/04/23 14:09

String名前、BigDecimal勝った数・負けた数をもつPlayerインスタンスとUserBeanクラスがありゲームが終わった後CSVファイルの中に同じ名前があれば勝敗を合計してリストに入れ、この後また書きこむという操作がしたいです。
次のプログラムで最後のファイルを閉じたすぐ後にjava.lang.NullPointerExceptionが出てくるのですがなぜでしょうか。

Java

1ICsvBeanReader inFile = new CsvBeanReader( new FileReader( RECORD_DIRECTRY), CsvPreference.EXCEL_PREFERENCE); 2 List<UserBean> scoreList = new ArrayList<>(); 3 try { 4 final String[] header = inFile.getHeader( true); 5 UserBean user = null; 6 while ( (user = inFile.read( UserBean.class, header, UserBean.processors)) != null) { 7 if ( user.getName().equals( humanPlayer.getName())) { 8 user.setWinCount( user.getWinCount().add(humanPlayer.getWinCount())); 9 user.setLoseCount( user.getLoseCount().add(humanPlayer.getLoseCount())); 10 scoreList.add( user); 11 } 12 else { 13 user.setName(Player.getName()); 14 user.setWinCount(Player.getWinCount()); 15 user.setLoseCount(Player.getLoseCount()); 16 scoreList.add( user); 17 } 18 } 19 } 20 finally { 21 inFile.close(); 22 }

スタックトレースはこのようになっています。

Java

1xception in thread "main" java.lang.NullPointerException: nameMapping should not be null 2 at org.supercsv.io.CsvBeanReader.read(CsvBeanReader.java:185) 3 at jankengame.Janken.operateResult(Janken.java:77) 4 at jankengame.Janken.startGame(Janken.java:67) 5 at jankengame.Main.main(Main.java:19)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tkturbo

2018/04/22 02:12

StackTraceを貼ってください。
退会済みユーザー

退会済みユーザー

2018/04/22 04:54

NullPointerException の理由は基本的に null の変数にアクセスしたから
guest

回答1

0

ベストアンサー

GrepCodeも見たけれど、

java.lang.NullPointerException: nameMapping should not be null

↑ここで原因が出てますね。

172 if( clazz == null ) { 173 throw new NullPointerException("clazz should not be null"); 174 } else if( nameMapping == null ) { 175 throw new NullPointerException("nameMapping should not be null"); 176 }

↑引数の「nameMapping」に指定された部分がNullだとStackTraceに出力されたメッセージでNullPointerExceptionが発生する、と。
「UserBean.processors」の結果がNullなのでは?

投稿2018/04/24 01:29

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問