>Java >java지도 시간 >일반 메소드의 유형 매개변수를 지정하는 방법은 무엇입니까?

일반 메소드의 유형 매개변수를 지정하는 방법은 무엇입니까?

PHPz
PHPz원래의
2024-05-03 11:54:02757검색

일반 메소드는 유형 매개변수를 사용하여 작동할 수 있는 데이터 유형을 지정합니다. 유형 매개변수 구문은 유형을 명시적으로 지정하거나 다음과 같은 와일드카드를 사용하여 지정할 수 있습니다. T(상한) 및 ? super T(하한). 와일드카드는 유형 매개변수의 범위를 지정합니다. 예를 들어 ? 확장 T는 유형 매개변수가 유형 T 또는 그 하위 클래스여야 함을 의미합니다.

일반 메소드의 유형 매개변수를 지정하는 방법은 무엇입니까?

일반 메소드 유형 매개변수 사양

Java에서 일반 메소드를 사용하면 개발자가 여러 유형에서 작동하는 메소드를 작성할 수 있습니다. 일반 메소드를 정의할 때 유형 매개변수를 지정해야 합니다. 유형 매개변수는 메소드가 작동할 수 있는 데이터 유형을 결정합니다.

유형 매개변수 구문

유형 매개변수는 꺾쇠괄호 안에 지정됩니다.

<T> void myMethod(T value) {
    // 代码主体
}

이 예에서 <t></t>는 유형 매개변수이며, 이는 메소드가 다음을 수행할 수 있음을 나타냅니다. 모든 유형의 객체에 대해 작동합니다. <t></t> 是类型参数,它表示方法可以操作任何类型的对象。

指定类型参数

类型参数可以通过明确指定类型来指定:

<String> void myMethod(String value) {
    // 操作 String 类型的数据
}

也可以使用通配符来指定类型参数:

  • ?:无界通配符,表示类型参数可以是任何类型。
  • ? extends T:上界通配符,表示类型参数必须是 T 类型或其子类。
  • ? super T:下界通配符,表示类型参数必须是 T 类型或其超类。

实战案例

假设我们有一个 List,其中包含各种类型的对象。我们想编写一个方法来打印列表中的每个元素:

import java.util.List;

public class Example {

    public static void main(String[] args) {
        List<Object> myList = List.of("Hello", 10, true);
        printElements(myList);
    }

    public static <T> void printElements(List<T> list) {
        for (T element : list) {
            System.out.println(element);
        }
    }
}

在这个例子中,printElements 方法是泛型的,它使用类型参数 T

🎜유형 매개변수 지정🎜🎜🎜유형 매개변수는 유형을 명시적으로 지정하여 지정할 수 있습니다. 🎜rrreee🎜와일드카드를 사용하여 유형 매개변수를 지정할 수도 있습니다. 🎜
  • ?: 제한 없음 와일드카드, 유형 매개변수가 모든 유형일 수 있음을 나타냅니다.
  • ? 확장 T: 유형 매개변수가 T 유형 또는 해당 하위 클래스여야 함을 나타내는 상한 와일드카드입니다.
  • ? super T: 하한 와일드카드로, 유형 매개변수가 T 유형 또는 해당 슈퍼클래스여야 함을 나타냅니다.
🎜🎜실용 사례🎜🎜🎜다양한 유형의 객체를 포함하는 목록이 있다고 가정합니다. 목록의 각 요소를 인쇄하는 메소드를 작성하려고 합니다. 🎜rrreee🎜이 예에서 printElements 메소드는 일반적이며 유형 매개변수 T를 사용합니다. 따라서 목록에 있는 모든 유형의 데이터를 인쇄할 수 있습니다. 🎜

위 내용은 일반 메소드의 유형 매개변수를 지정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.