[JAVA]Generic構文の定理


なぜジュネーブを使うのですか?


JENICタイプを使用することで、コンパイル中にエラータイプを使用する可能性のある問題を解消できます.
クラス、インタフェース、メソッドを定義する場合、JENICではパラメータとしてタイプ(type)を使用できます.
メリットコンパイル時に強力なタイプチェックを行うことができます.

  • 実行時にタイプエラーが発生するよりも、コンパイル時にタイプを強くチェックして、エラーを回避します.
    メリットタイプ変換を除去します.

  • 非符号化コードは、プログラムのパフォーマンスに影響を与える不要なタイプ変換を行います.
  • List list = new ArrayList(); 
    list.add("hello"); 
    String str = (String) list.get(0); // 타입 변환이 필요 
    
    List<String> list2 = new ArrayList<>(); 
    list2.add("hello"); 
    String str2 = list.get(0); // 불필요
    

    Genericタイプ(class,interface)


    ジェニーリックタイプとは、タイプをパラメータとするクラスとインタフェースを指します.
    クラスまたはインタフェース名の後ろに「<>」記号が付けられ、タイプパラメータが間にあります.
    public class 클래스<T> { ... } 
    public interface 인터페이스<T> { ... }
    
    タイプパラメータは一般的に大文字で表されます.
    // 비제네릭 타입 이용시 
    public class Corn{ 
    	private Object obj; 
    	public Object get();
    	public void set(Object obj);
        } 
    // 제네릭 타입 이용시 
    public class Corn<T>{
    	private T t; 
        public T get();
        public void set(T t);
        }
    
    オブジェクトタイプは、すべてのオブジェクトを保存する利点がありますが、保存時にタイプ変換が行われ、取得時にもタイプ変換が行われます.
    public class Example{ 
    // 비제네릭 
    Corn cron = new Corn(); 
    corn.set("콘");  	// String -> Object (자동 타입 변환) 
    String name = (String) corn.get(); 	// Object -> String (강제 타입 변환) 
    
    // 제네릭 
    Corn<String> corn = new Corn(); 
    cron.set("콘"); 
    String name = corn.get(); 
    }