gpt4 book ai didi

Java 泛型为什么需要通配符(问号)?

转载 作者:行者123 更新时间:2023-12-04 16:03:15 24 4
gpt4 key购买 nike

<分区>

我试图理解为什么我们需要通配符——Java 泛型中的问号,为什么我们不能只使用普通的单个字符 T 或 E 等作为类型?看下面的例子:

public class App {

public static void main(String[] args) {
App a = new App();
List<String> strList = new ArrayList<String>();
strList.add("Hello");
strList.add("World");
List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);

a.firstPrint(strList);
a.firstPrint(intList);

a.secondPrint(strList);
a.secondPrint(intList);
}

public <T extends Object> void firstPrint(List<T> theList) {
System.out.println(theList.toString());
}

public void secondPrint(List<? extends Object> theList) {
System.out.println(theList.toString());
}

}

虽然通配符版本更简洁,但结果相同。这是唯一的好处吗?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com