일반 함수는 유형 매개변수를 사용하여 함수의 재사용성과 유형 안전성을 향상시키며, 이를 통해 다양한 유형의 매개변수를 허용하는 함수를 정의할 수 있습니다. 유형 매개변수에 대한 경계를 지정하여 특정 유형을 서브클래싱하거나 특정 인터페이스를 구현하도록 할 수 있습니다. 컴파일러는 일반적으로 유형 매개변수를 유추할 수 있으며 호출 사이트에서 매개변수의 실제 유형을 지정하는 경우 이를 명시적으로 선언할 필요가 없습니다. 일반 함수는 다양한 문제를 해결하는 데 사용할 수 있습니다. 예를 들어 일반 함수는 Comparable 인터페이스를 구현하는 한 목록의 요소 유형에 관계없이 목록에서 가장 큰 요소를 찾을 수 있습니다.
Java 함수 제네릭으로 유형 안전성 달성
함수 제네릭은 다양한 유형의 매개변수를 허용하는 함수를 정의할 수 있는 강력한 메커니즘입니다. 이를 통해 코드 재사용성과 유형 안전성이 향상됩니다.
Syntax
유형 매개변수를 지정하려면 꺾쇠괄호(87a288dd01dd4e56dfc6fb1912fca6c6)를 사용하세요.
<T> T max(T a, T b) { // ... }
일반 유형 경계
유형 매개변수에 경계를 지정하여 특정 유형의 하위 클래스이거나 특정 인터페이스 구현:
<T extends Number> T sum(List<T> numbers) { // ... }
유형 추론
컴파일러는 일반적으로 유형 매개변수를 추론할 수 있습니다. 호출 사이트에서 매개변수의 실제 유형을 지정하는 경우 유형 매개변수를 명시적으로 선언할 필요가 없습니다.
Integer result = max(1, 2); // 编译器推断类型是 Integer
실제 예
목록에서 가장 큰 요소를 찾는 함수를 작성한다고 가정해 보세요. :
<T extends Comparable<T>> T findMax(List<T> list) { if (list.isEmpty()) { throw new IllegalArgumentException("List is empty"); } T max = list.get(0); for (T element : list) { if (element.compareTo(max) > 0) { max = element; } } return max; }
이 일반 함수는 Comparable
인터페이스를 구현하는 모든 유형을 허용하여 요소를 비교하고 가장 큰 요소를 찾을 수 있도록 보장합니다.
다음 코드에서 이 함수를 사용할 수 있습니다.
List<Integer> numbers = List.of(1, 2, 3, 4, 5); Integer maxNumber = findMax(numbers); // 类型推断为 Integer List<String> words = List.of("apple", "banana", "cherry"); String maxWord = findMax(words); // 类型推断为 String
함수 제네릭을 사용하면 코드의 다양성이 보장되고 유형 안전성이 향상됩니다. 이렇게 하면 유형 오류가 방지되고 코드가 더욱 강력해집니다.
위 내용은 Java 함수 제네릭을 사용하여 유형 안전성을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!