淘先锋技术网

首页 1 2 3 4 5 6 7

Java是一门支持泛型编程的语言,通过使用Java泛型,我们可以在编译时期进行类型检查,避免类型转换异常,提高代码的健壮性和可维护性。在Java泛型中,我们经常会使用到T和>这两个符号,下面我们来了解一下他们的区别。

T是Java泛型中的类型变量,它是一种占位符类型,可以用来代替任意Java类型。我们可以在编写泛型方法或泛型类的时候使用T来表示泛型类型,例如:

public class MyList<T> {
private T[] array;
public MyList(T... array) {
this.array = array;
}
public T get(int index) {
return array[index];
}
public static <T> List<T> fromArrayToList(T[] array) {
return Arrays.asList(array);
}
}

在上述代码中,我们使用了<T>来声明MyList类中的泛型类型,使用T[]表示数组中的元素类型。在get方法中,我们直接返回了T类型的元素。在fromArrayToList中,我们使用了<T>来表示泛型类型,方法接受一个T[]类型的数组,然后将它转换成List<T>类型返回。

而在使用通配符的时候,我们通常使用<?>来代表一个未知的类型,例如:

public static void printList(List<?> list) {
for (Object obj : list) {
System.out.println(obj);
}
}

在上述代码中,我们使用了<?>来表示一个未知类型的集合,我们无法修改其中的元素,只能以Object的形式读取其中的元素。该方法可以接受List<String>等类型的集合。

因此,T和<?>在Java泛型中的使用都十分重要,T用来表示泛型类型,可以在方法或类的声明中使用;而<?>用来表示一个未知类型,可以在通过通配符限制泛型类型时使用。