前提・実現したいこと
AndroidStudioにてjavaをいじっています。(java系初心者です)
エディタ上でいじっている最中からエラーなりワーニングなりが出るので重宝しているのですが、どうしても消せないワーニングが気になっています。
ワーニングですので、理解しているなら放置でもいいのでしょうが、もっと綺麗/安全な書き方があるなら倣いたいと思っています。
発生している問題・エラーメッセージ
Unboxing of 'map.get(0)' may produce 'NullPointerException'
該当のソースコード
説明のため、あり得ないコードになっている点は無視してください。
ワーニングの箇所
(1) line 4 のmap.get(0)
line 3の単純なget()では大丈夫なのに、+1みたいな加工を入れるとワーニングになります。
line 3と4を入れ替えてもダメ。
(2) line 5 のmap.get(0)
変数に取り出す事自体がワーニングになり
直前にnullチェックする以外の回避方法が思いつかないです。
また、
line 1でもnew HashMap<>()にワーニング出ていますが、それはいったん無視してください。
(SparseUbtArrayのほうがいいよ、というメッセージ)
1 HashMap<Integer, Integer> map = new HashMap<>(); 2 if (map.get() != null) { 3 map.put(1, map.get(0)); 4 map.put(2, map.get(0) + 1); 5 int xxxx = map.get(0); 6 }
試したこと
ちょっと条件混乱して分からなくなってしましましたが、直前でnullチェックすればワーニング出なくなるパターンもあったように記憶しています。。
補足情報(FW/ツールのバージョンなど)
AndroidStudio 3.5.3
javaのプロジェクト
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/13 01:02
2019/12/16 08:50