ジェネリック:つまり、「パラメーター化されたタイプ」、動作しているデータ型はパラメーターとして指定されています。このメカニズムにより、プログラマーはコンパイル時に違法なタイプを検出できます。
ジェネリックを使用しないこととジェネリックを使用することの違い
一般的なコードはありません:
import java.util.arraylist; Import Java.util.list; public class nogenerics {public static void main(string [] args){list arraylist = new arraylist(); arraylist.add( "1"); //文字タイプArrayList.Add(1); //(int i = 0; i <arraylist.size(); i ++){string s =(string)arraylist.get(i); //変換をキャストしますが、文字タイプに変換することはできず、コンパイルシステムについてはエラーは報告されませんでした。一般的なコードの使用:
Import java.util.arraylist; Import Java.util.list; public class generics {public static void main(string [] args){list <string> stringlist = new arraylist <string>(); list <integer> integerlist = new ArrayList <>(); // StringList.Add( "1"); //stringlist.add(1); //エラーをコンパイルすると、文字型のみを追加できますintegerlist.add(1); //integerlist.add("1 "); //エラーをコンパイルすると、(int i = 0; i <stringlist.size(); i ++){string s = stringlist.get(i); system.out.println(s);} for(int j = 0; j <integerlist.size(); j ++){int; j ++){int j = 0; i = integerlist.get(j); system.out.println(i);}}}}注:jdkバージョンでは、リスト<string> stringlist = new ArrayList <String>();リスト<string> stringlist = new ArrayList <>()として省略することができます。
ジェネリックの利点:
1。タイプ安全。たとえば、List <String>は文字列のみを挿入でき、単に制限型として配置できます。
2。キャストを排除します。コードをより読みやすくし、エラーの可能性を減らします。
3。潜在的なパフォーマンスの利点。ジェネリックは、より大きな最適化の可能性をもたらします。ジェネリックがない場合、プログラマーはこれらのキャストを指定します。
知らせ:
1.汎用型のタイプパラメーターは、単純なタイプではなく、クラスタイプ(カスタムクラスを含む)のみです。たとえば、リスト<string、person>
2.リスト<string、integer>など、ジェネリックには複数のタイプパラメーターがあります。