자바 와일드카드 예제

주: 와일드카드의 상한을 지정하거나 하한을 지정할 수 있지만 둘 다 지정할 수는 없습니다. Java 와일드카드 문자(?)를 사용하여 지정됩니다. 이를 알 수 없는 형식 목록이라고 합니다. 주요 용도는 Java 일반 형식 명명 규칙은 코드를 쉽게 이해하는 데 도움이 되며 명명 규칙을 사용하는 것이 자바 프로그래밍 언어의 모범 사례 중 하나입니다. 따라서 제네릭은 자체 명명 규칙과 함께 제공됩니다. 일반적으로 형식 매개 변수 이름은 java 변수와 쉽게 구분할 수 있도록 단일 대문자입니다. 가장 일반적으로 사용되는 형식 매개 변수 이름은 다음과 같습니다: 배열(Java에서 공동 변종)과 달리 제네릭 형식의 다른 인스턴스화는 서로 호환되지 않으며 명시적으로는 호환되지 않습니다. 제네릭 서브제네릭; 컴파일러는 캐스팅(제네릭)superGeneric및 (제네릭)에 대한 변환 오류를 보고합니다. 아니 와일드 카드 – 코드가 모두 안팎 카테고리에서 변수에 액세스하는 경우 다음 와일드 카드를 사용하지 마십시오. List 확장은 경계가 지정된 와일드카드의 예입니다.

Tthe? 우리가 이전에 본 와일드 카드처럼 알 수없는 유형을 의미합니다. 그러나 이 경우 이 알 수 없는 형식은 실제로 Shape의 하위 유형이라는 것을 알고 있습니다. (참고: 셰이프 자체또는 일부 하위 클래스일 수 있습니다. 문자 그대로 셰이프를 확장할 필요는 없습니다.) 모양은 와일드카드의 상한이라고 합니다. 하위 입력 관계는 형식 인수를 변경하지 않는 한 유지되며, 아래는 여러 형식 매개 변수의 예를 보여 주며 있습니다. Java 컬렉션 프레임워크에서 클래스 목록 MyClass 형식의 개체의 정렬된 컬렉션을 나타냅니다. 상한은 확장을 사용하여 지정됩니다: A List<? MyClass를 확장하면 MyClass의 일부 하위 클래스의 개체 목록, 즉 목록의 모든 개체가 MyClass 유형으로 보장되므로 MyClass[4] 형식의 변수를 사용하여 반복할 수 있으므로 의 상위 형식은 무엇입니까? 컬렉션의 모든 종류? 그것은 작성 된 Collection (발음 „알 수 없는 컬렉션”), 즉, 그 요소 형식 아무것도 일치 하는 컬렉션입니다. 명백한 이유로 와일드카드 유형이라고 합니다. 작성할 수 있습니다: 와일드카드 인수는 형식 매개 변수를 바인딩할 수 있는 것과 같은 방식으로 바인딩할 수 있습니다. 클래스 계층 구조에서 작동 하는 제네릭 형식을 만들 때 경계된 와일드카드가 중요 합니다. 일반 상위/하한 경계 와일드카드 및 경계 형식 매개 변수는 유사하지만 바인딩된 형식 매개 변수는 예를 들어 위의 코드에서 와 같이 제네릭 알고리즘을 작성하는 데 도움이 되며, 비교 가능한 바인딩된 형식 매개 변수를 사용하고 있습니다.