2017-03-27 5 views
4

Javaの履歴について質問があります。
1.2からJavaにはArrayListがあります。
Javaにはバージョン1.5以降のジェネリックがあります。Javaバージョン1.5より前のArrayListのジェネリックスなしで型がどのように処理されたか

ArrayListの実装では、ジェネリックスなしでタイプを定義する方法はありますか?

+0

問題点は何ですか? http://pages.cs.wisc.edu/~hasti/cs368/JavaTutorial/jdk1.2/api/java/util/ArrayList.html( 'E'の代わりに' Object'を使用しました) – Idos

+0

おそらく最高の "重複した "質問は世界ではありますが、ハーシュアの答えはあなたが探しているものをほとんど説明しています。次回は先の研究を試してみてください。 – GhostCat

答えて

7

、例えば:

ジェネリックを使用するように書き換え
The following code snippet without generics requires casting: 
List list = new ArrayList(); 
list.add("hello"); 
String s = (String) list.get(0); 

、コードがキャストを必要としません

リストにはObjectというものだけが格納されていたことが分かっていたため、リストを使用して有用な型にキャストするのはコード通りでした。あなたが想像できるように

、不快  —のすべての種類には、このリードは、あなたは、リスト内のオブジェクトの間違った種類を入れ、その後、あなたが期待していた型にキャストしようとしたときClassCastException秒後に得ることができます。あなたがリストにあったものを変更した場合、あなたはどこでもあなたのキャストを変更しなければならず、必然的に1つなどを忘れるなどしなければなりません。

3

ArrayListには、型オブジェクトを挿入して戻すことができる汎用オブジェクトがあります。このオブジェクトは、型オブジェクトにキャストする必要があることを意味します。ジェネリックスの後、これらの種類の冗長コードが削除されました。あなたはgeneric docsに近い顔をしている場合は

、あなたの特定の質問には、キャストの

撤廃に答えられて。これは、すべてのObjectで行われ(と関係するキャストの多くがあった)た

List<String> list = new ArrayList<String>(); 
    list.add("hello"); 
    String s = list.get(0); // no cast 
0

あなたはStackOverflowのために新しいようであるように思わとにかくdebug..Butするあなたからsomecodeで実際にあなたは誰もが予想しstackoverflow.Whatにおける質問のこれらの種類を尋ねるべきではありません...

あなたはジェネリックなしのArrayListを使用することができますあまりにも。たとえば は、あなたはそれがこのようになります特定のタイプのアイテムを保持するためにジェネリック医薬品を使用する場合...

ArrayList<String> list=new ArrayList<>(); 

あなたがジェネリックを使用したくない場合は、単に私が教えてみましょう。この

ArrayList list =new ArrayList(); 

を使用することができますあなたはジェネリックスを使用しないと非常に大きな欠点があります。ジェネリックを使用しない場合は、すべてのものをオブジェクトとみなします。要素を取得するたびに、これらのデータを特定のデータ型にキャストする必要があります。

for (Object o:list) 
{ 
String s=(String)o; 
System.out.println(s); 
} 

例えば

はあなたがジェネリックを使用していけない場合何をすべきか..です あなたがジェネリック医薬品を使用する場合は、

for(String s:list) 
{ 
System.out.println(s) 
} 

・ホープ、このことができます....:)

+2

あなたはあなたの前提に間違っています。これはデバッグサービスではありません。これはプログラミングサイトに関する質問であり、いくつかのプログラミングに関する質問はコードなしでも有効です。 – Tschallacka

+1

さて、これを言って議論を終わらせる人もいますが、私はそう言っています.... – bharath

+0

そのようなステートメントはコメントであり、答えに取り組むべきではありません。コメントでは、ユーザーにhttps://stackoverflow.com/help/how-to-askのようなものを指摘したり、改善提案を出したり、質問を編集して質問をより明確にしたり、この質問。 – Tschallacka

関連する問題