2016-05-29 4 views
0

この質問は状況によって異なります。私の質問を複写としてマークした質問は、私の質問状況の答えを完全には明確にしていません。列挙型でintの代わりにIntegerを記述する理由は何ですか?

import java.util.Enumeration; import java.util.Vector;

public class EnumerationDemo { 

    public static void main(String[] args) { 
     Vector vector = new Vector(); 
     for (int item = 1; item <= 5; item++) { 
      vector.addElement(item); 
     } 
     System.out.println(vector); 
     Enumeration enumeration = vector.elements(); 
     while (enumeration.hasMoreElements()) { 
      Integer integer = (Integer) enumeration.nextElement(); 
      System.out.println(integer); 
     } 
    } 
} 

私は列挙型でintの代わりに整数を書いていますか?

+4

なぜ「ベクター」を使用していますか?このコードは、ジェネリックよりも前のようです。 –

答えて

1

あなたはこのようなint代わりのInteger、書き込みを許可されています。これは、コンパイルしてJavaのバージョン5以降に起因するオートボクシング/アンボクシング(demo)に走る

int integer = (Integer) enumeration.nextElement(); 

あなたはIntegerにキャストを行う必要が理由ではなく、intは、Javaはそれは不可能自分Object由来でそれらをラップすることなく、標準的なJavaのコレクションにプリミティブを保存すること、Object由来の参照型とは別にプリミティブ型を扱うということです同等。

+0

説明をありがとう...私は今それを得た – Rajeev

関連する問題