"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java Generics를 사용하여 클래스 및 인터페이스 제약 조건을 어떻게 결합할 수 있습니까?

Java Generics를 사용하여 클래스 및 인터페이스 제약 조건을 어떻게 결합할 수 있습니까?

2024년 12월 22일에 게시됨
검색:634

How Can I Combine Class and Interface Constraints Using Java Generics?

클래스 및 인터페이스 호환성을 갖춘 Java 제네릭

Java에서는 특정 제약 조건이 있는 클래스 객체를 생성하는 것이 어려울 수 있습니다. 일반적인 시나리오는 특정 인터페이스를 구현하는 동시에 특정 클래스를 확장하는 클래스 개체를 정의하는 것입니다. 그러나 제네릭을 사용하여 두 제약 조건을 동시에 달성하는 것은 일반적인 논쟁 지점이었습니다.

클래스가 ClassA를 확장하고 다음 구문을 사용하여 인터페이스 InterfaceB를 구현하도록 시도합니다.

Class extends ClassA>

또는

Class extends InterfaceB>

는 하나의 요구 사항만 충족하고 두 요구 사항을 모두 결합하는 데 실패합니다.

솔루션

다행히도 Java 제네릭은 여러 인터페이스 또는 클래스 플러스를 허용합니다. 인터페이스. 이를 달성하려면 다음과 같이 와일드카드 선언을 수정하십시오. 임의로 복잡한 조합을 이룰 수 있습니다. 예를 들어, Collections#max의 JavaDoc 선언은 다음과 같은 복잡성을 보여줍니다.

바이너리 호환성을 유지하려면 이러한 복잡한 선언이 필요합니다.

public static > T max(Collection extends T> coll)
클래스 및 인터페이스 제약 조건을 사용한 구현

변수 선언에서 원하는 제한을 구현하려면 클래스에 일반 경계를 배치하세요.class classB { } 인터페이스 인터페이스C { } 공개 클래스 MyClass를 확장합니다. 클래스 변수; }

결론
public static > T max(Collection extends T> coll)

Java 제네릭은 제한된 클래스와 인터페이스 조합을 생성하는 유연한 방법을 제공합니다. 개발자는 구문과 제한 사항을 이해함으로써 이 기능을 활용하여 코드에 특정 요구 사항을 적용할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3