2017-05-08 70 views
2

My IDEはIntegerに対して不必要なボクシングの警告を表示します。Netbeansで整数に不必要なボクシングが発生する

// Custom 
double[] Cvalues = {18,1,0,0,17}; 
methodParams.put(Integer.valueOf(this.getCustom()), Cvalues); 
+3

は、なぜあなたはこれを必要なのですか? 'getCustom()'を使うだけです。 –

+1

質問は何ですか?あなたのIDEが、あなたが不必要なボクシングをしていることを伝えていることをあなたに知らせるだけですか? IDEがあなたに嘘をついていると思いますか?あなたは実際に不必要なボクシングをしています。 – Michael

+0

私のIDEはセミコロンが足りないと不平を言っています。ダー! –

答えて

3

あなたはMap<Integer, Object> myMapを持っているし、あなたのような何かを行う場合は、次の

Map<Integer, Object> myMap = new HashMap<>(); 
myMap.put(Integer.valueOf(1), "A"); 
myMap.put(Integer.valueOf(10), "B"); 
myMap.put(Integer.valueOf(13), "C"); 

Integerクラスでラッピングが不要であるため、コンパイラは警告を生成します...

これで十分です:

myMap.put(1, "A"); 
myMap.put(10, "B"); 
myMap.put(13, "C"); 
getCustom()方法はプリミティブ不要のボクシング/ラッピングを作るプリミティブ整数を返しているようなあなたの場合

methodParams.put(Integer.valueOf(this.getCustom()), Cvalues); 

が見えます。

だけで実行します。 `` Integer.valueOf(this.getCustom()):

methodParams.put(getCustom(), Cvalues); 
0

オートボクシングについてのJavaチュートリアルを読んで、それが「Integer.valueOfは(this.getCustom())」「)this.getCustom(」不要とするだけの呼び出しであることのチュートリアルを読んだ後に明らかになるべきです警告を解除してください。

https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html

関連する問題