Java 함수의 일반 와일드카드: 상한 및 하한

WBOY
풀어 주다: 2024-04-25 16:18:02
원래의
581명이 탐색했습니다.

Java에서는 일반 와일드카드를 사용하면 특정 유형을 지정하지 않고도 일반 유형을 나타낼 수 있습니다. 상한 와일드카드 문자( )는 유형 매개변수 T 또는 그 하위 클래스를 나타내므로 하위 클래스 데이터가 목록에서 허용될 수 있습니다. 하위 와일드카드 문자()는 T 또는 해당 수퍼클래스를 나타내며 목록의 수퍼클래스 데이터가 허용되도록 합니다. 와일드카드를 사용하면 제네릭으로 크기 조정 가능한 배열 목록을 구현하여 다양한 유형 및 추가/제거 작업을 처리할 수 있습니다.

Java 函数中的泛型通配符:上限和下限

Java 함수의 일반 와일드카드: 상한 및 하한

Java에서는 와일드카드를 사용하여 일반 유형을 나타낼 수 있으므로 구체적인 유형을 지정하지 않고도 제네릭을 사용할 수 있습니다. 이 기사에서는 상위 및 하위 와일드카드를 살펴보고 실제 예를 통해 사용법을 보여줍니다.

Capped 와일드카드

Capped 와일드카드()는 유형 매개변수T또는 해당 하위 클래스를 나타냅니다. 예:) 表示类型参数T或其任何子类。例如:

public static  double sum(List numbers) { double total = 0; for (T num : numbers) { total += num.doubleValue(); } return total; }
로그인 후 복사

此函数可以接受任何 Number (如 Integer、Double) 或其子类的列表。我们可以安全地将任何满足 Number 约束的列表传递给此函数,如下所示:

List ints = List.of(1, 2, 3); double sumIntegers = sum(ints); // 编译通过
로그인 후 복사

下限通配符

下限通配符 () 表示类型参数T或其任何超类。例如:

public static  void process(List entities) { for (T entity : entities) { System.out.println(entity.getClass().getName()); } }
로그인 후 복사

此函数可以接受任何 Number 的超类 (如 Object、Serializable) 的列表。我们可以安全地将任何满足 Number 超类约束的列表传递给此函数,如下所示:

List objects = List.of("Hello", 123); process(objects); // 编译通过
        
로그인 후 복사

实战案例

考虑一个可调整大小的数组列表,我们可以使用泛型通配符来实现它:

import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ResizableArrayList { private List list; public ResizableArrayList() { this(new ArrayList<>()); } public ResizableArrayList(List initialList) { list = new ArrayList<>(initialList); } public void addAll(List elements) { list.addAll(elements); } public void removeAll(List elements) { list.removeAll(elements); } public List getList() { return list; } public static void main(String[] args) { ResizableArrayList numbers = new ResizableArrayList<>( Arrays.asList(1, 2, 3) ); numbers.addAll(Arrays.asList(4, 5, 6)); numbers.removeAll(Arrays.asList(2, 3)); System.out.println(numbers.getList()); // [1, 4, 5, 6] } }
로그인 후 복사

这个可调整大小的数组列表可以处理任何类型Errreee

이 함수는 모든 숫자(예: Integer, Double) 또는 해당 하위 클래스 목록을 허용할 수 있습니다. 다음과 같이 숫자 제약 조건을 충족하는 모든 목록을 이 함수에 안전하게 전달할 수 있습니다. rrreeeLower wildcardLower wildcard( )는 유형 매개변수를 나타냅니다. T 또는 해당 슈퍼클래스. 예: rrreee이 함수는 모든 Number 슈퍼클래스(예: Object, Serialize) 목록을 허용할 수 있습니다. 다음과 같이 Number 슈퍼클래스 제약 조건을 충족하는 모든 목록을 이 함수에 안전하게 전달할 수 있습니다. rrreee 실제 예 크기 조정 가능한 배열 목록을 고려하면 일반 와일드카드를 사용하여 이를 달성할 수 있습니다. rrreee이 크기 조정 가능한 배열 목록은 다음과 같이 할 수 있습니다. 모든 유형의 E를 처리하여 목록에 다양한 개체를 추가하거나 제거할 수 있습니다.

위 내용은 Java 함수의 일반 와일드카드: 상한 및 하한의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!