Java에서는 일반 와일드카드를 사용하면 특정 유형을 지정하지 않고도 일반 유형을 나타낼 수 있습니다. 상한 와일드카드 문자( )는 유형 매개변수 T 또는 그 하위 클래스를 나타내므로 하위 클래스 데이터가 목록에서 허용될 수 있습니다. 하위 와일드카드 문자( super T>)는 T 또는 해당 수퍼클래스를 나타내며 목록의 수퍼클래스 데이터가 허용되도록 합니다. 와일드카드를 사용하면 제네릭으로 크기 조정 가능한 배열 목록을 구현하여 다양한 유형 및 추가/제거 작업을 처리할 수 있습니다.
Java 함수의 일반 와일드카드: 상한 및 하한
Java에서는 와일드카드를 사용하여 일반 유형을 나타낼 수 있으므로 구체적인 유형을 지정하지 않고도 제네릭을 사용할 수 있습니다. 이 기사에서는 상위 및 하위 와일드카드를 살펴보고 실제 예를 통해 사용법을 보여줍니다.
Capped 와일드카드
Capped 와일드카드()는 유형 매개변수
T
또는 해당 하위 클래스를 나타냅니다. 예: extends T>
) 表示类型参数T
或其任何子类。例如:
public staticdouble sum(List numbers) { double total = 0; for (T num : numbers) { total += num.doubleValue(); } return total; }
此函数可以接受任何 Number (如 Integer、Double) 或其子类的列表。我们可以安全地将任何满足 Number 约束的列表传递给此函数,如下所示:
Listints = List.of(1, 2, 3); double sumIntegers = sum(ints); // 编译通过
下限通配符
下限通配符 ( super T>
) 表示类型参数T
或其任何超类。例如:
public staticvoid process(List entities) { for (T entity : entities) { System.out.println(entity.getClass().getName()); } }
此函数可以接受任何 Number 的超类 (如 Object、Serializable) 的列表。我们可以安全地将任何满足 Number 超类约束的列表传递给此函数,如下所示:
List
实战案例
考虑一个可调整大小的数组列表,我们可以使用泛型通配符来实现它:
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 super E> initialList) { list = new ArrayList<>(initialList); } public void addAll(List extends E> elements) { list.addAll(elements); } public void removeAll(List super E> 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] } }
这个可调整大小的数组列表可以处理任何类型E
rrreee
super T>
)는 유형 매개변수를 나타냅니다. T 또는 해당 슈퍼클래스. 예: rrreee이 함수는 모든 Number 슈퍼클래스(예: Object, Serialize) 목록을 허용할 수 있습니다. 다음과 같이 Number 슈퍼클래스 제약 조건을 충족하는 모든 목록을 이 함수에 안전하게 전달할 수 있습니다. rrreee 실제 예 크기 조정 가능한 배열 목록을 고려하면 일반 와일드카드를 사용하여 이를 달성할 수 있습니다. rrreee이 크기 조정 가능한 배열 목록은 다음과 같이 할 수 있습니다. 모든 유형의
E
를 처리하여 목록에 다양한 개체를 추가하거나 제거할 수 있습니다.
위 내용은 Java 함수의 일반 와일드카드: 상한 및 하한의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!