Java中的泛型编程:泛型类、泛型方法、通配符

泛型是Java语言中的一项重要特性。它可以让程序员编写更加通用、更加灵活的代码。本文将详细介绍Java中的泛型编程,包括泛型类、泛型方法、通配符的概念和使用方法,并提供相应的代码案例。

一、泛型类

泛型类是指具有一个或多个类型参数的类。在定义泛型类时,可以在类名后面用<T>表示类型参数,类型参数可以用在成员变量、方法参数和返回值等位置。

public class MyGenericClass<T> {
    private T value;
    public MyGenericClass(T value) {
        this.value = value;
    }
    public T getValue() {
        return value;
    }
}

上面的代码定义了一个泛型类MyGenericClass,它有一个类型参数T。在构造函数中,使用了T类型的参数value。在getValue方法中,返回了T类型的值。

使用泛型类时,需要在类名后面用具体的类型替换T。例如:

MyGenericClass<String> strObj = new MyGenericClass<>("Hello, World!");
System.out.println(strObj.getValue()); // 输出:Hello, World!

上面的代码创建了一个MyGenericClass<String>类型的对象strObj,它的value成员变量的类型是String。在调用getValue方法时,返回了String类型的值。

二、泛型方法

泛型方法是指具有一个或多个类型参数的方法。在定义泛型方法时,可以在方法名前面用<T>表示类型参数,类型参数可以用在参数列表和返回值的类型中。

public class MyGenericMethod {
    public static <T> T getValue(T[] array, int index) {
        return array[index];
    }
}

上面的代码定义了一个泛型方法getValue,它有一个类型参数T。在方法参数列表中,使用了T[]类型的参数array和int类型的参数index。在方法返回值中,使用了T类型的值。

使用泛型方法时,需要在方法名前面用具体的类型替换T。例如:

String[] strArray = {"Hello", ", ", "World", "!"};
String str = MyGenericMethod.<String>getValue(strArray, 2);
System.out.println(str); // 输出:World

上面的代码调用了泛型方法getValue,使用了String类型的参数T。在调用时,传入了一个String类型的数组和一个int类型的索引值。在返回值中,获取了String类型的值。

三、通配符

通配符是指用?表示的类型参数。在使用通配符时,不能对其进行赋值操作,只能用于参数列表中的类型匹配。

public class MyWildcard {
    public static void printList(List<? extends Number> list) {
        for (Number n : list) {
            System.out.print(n + " ");
        }
        System.out.println();
    }
}

上面的代码定义了一个通配符类型参数的方法printList,它的参数列表中包含一个List<? extends Number>类型的参数list。在方法中,使用了foreach循环遍历了list中的元素,并输出了它们的值。

使用通配符时,可以用? extends表示上限通配符,表示参数类型是某个类的子类;也可以用? super表示下限通配符,表示参数类型是某个类的父类。例如:

List<Integer> intList = Arrays.asList(1, 2, 3);
List<Double> doubleList = Arrays.asList(1.1, 2.2, 3.3);
MyWildcard.printList(intList);
MyWildcard.printList(doubleList);

上面的代码创建了两个List类型的对象intList和doubleList,并将它们作为参数传递给了printList方法。在调用时,使用了上限通配符? extends Number。在输出时,分别输出了intList和doubleList中的元素。

本文介绍了Java中的泛型编程,包括泛型类、泛型方法、通配符的概念和使用方法。对于初学者来说,掌握泛型编程是一个很好的提高编程效率和代码复用性的方法。希望本文能够对大家有所帮助。

猿教程
请先登录后发表评论
  • 最新评论
  • 总共0条评论