자바 generic 예제

예를 들어 ArrayList 는 컬렉션 확장하는 목록 구현하므로 ArrayList 목록 의 하위 유형이며목록 컬렉션 하위 유형입니다. 이 예제에서는 차원 클래스의 생성자 형식 정보도 있습니다. 따라서 단일 형식의 모든 특성만 있는 차원 인스턴스를 가질 수 있습니다. 형식 매개 변수는 반환 형식을 선언하고 실제 형식 인수라고 하는 제네릭 메서드에 전달되는 인수 형식에 대한 자리 표시자 역할을 하는 데 사용할 수 있습니다. 나는 제네릭 대 컬렉션에 대한 유즈 케이스 디그램을 원하며, 내 직업에 대한 제네릭 형식 클래스 및 방법과 동일한 줄로 신속하게 제공하십시오. 배열이 유사한 유형의 요소 모음이며 호환되지 않는 형식을 푸시하면 런타임에 ArrayStoreException이 throw됩니다. 컬렉션 클래스의 경우는 그렇지 않습니다. 제네릭은 JDK 5에 의해 추가되었습니다. 대부분의 알고리즘은 적용되는 데이터 유형에 관계없이 논리적으로 동일합니다.

제네릭을 사용하면 알고리즘을 한 번 정의할 수 있으며 추가 작업 없이 모든 종류의 데이터 형식에 적용할 수 있습니다. Java 컴파일러는 바인딩된 형식 매개 변수 T를 아래 코드와 마찬가지로 첫 번째 바인딩된 인터페이스로 대체합니다. Java Generic 개념을 사용하여 개체 배열을 정렬한 다음 정수 배열, Double 배열, 문자열 배열 등을 사용하여 제네릭 메서드를 호출하여 배열 요소를 정렬하는 제네릭 메서드를 작성할 수 있습니다. 제네릭 형식의 모든 형식 매개 변수를 바인딩되지 않은 경우 제네릭 형식의 모든 형식 매개 변수를 해당 경계 또는 Object로 바꿉습니다. 따라서 생성된 바이트 코드에는 일반 클래스, 인터페이스 및 메서드만 포함됩니다. 형식 안전성 유지를 위해 필요한 경우 삽입 형식 캐스트입니다. 확장된 제네릭 형식에서 다형성을 보존하기 위해 브리지 메서드를 생성합니다. 형식 지우기 매개 변수형식에 대해 새 클래스가 만들어지지 않도록 합니다. 따라서 제네릭에는 런타임 오버헤드가 발생하지 않습니다.

또한 형식 매개 변수(즉, K 또는 V)를 매개 변수형식(즉, 목록)으로 대체할 수도 있습니다. 예를 들어, orderedPair 예제를 사용 하 여: 예, 그것은 사실 입니다. 목록 또는 Map와 같은 제네릭 식을 선언할 수 없습니다. 확실히 당신은 원형 대신 래퍼 클래스를 사용하고 실제 값을 전달할 때 원형을 사용할 수 있습니다. 이러한 값 프리미티브는 자동 boxing을 사용하여 프리미티브를 각 래퍼 클래스로 변환하여 허용됩니다.