gpt4 book ai didi

java - 将 List 传递给需要 List 的方法
转载 作者:行者123 更新时间:2023-12-01 07:31:25 26 4
gpt4 key购买 nike

Page 112 of CHAPTER 5 GENERICS in the book - Effective Java ,出现这些句子

Just what is the difference between the raw type List and the parameterized type List<Object> ...While you can pass a List<String> to a parameter of type List, you can’t pass it to a parameter of type List<Object>

我试过了

public static void getMeListOfObjs(List<Object> al){
System.out.println(al.get(0));
}
public static void main(String[] args) {

List<Object> al = new ArrayList<Object>();

String mys1 = "jon";

al.add(mys1);

getMeListOfObjs(al);


}

运行没有任何错误...是书本内容有错误吗?我引用的是第二版

最佳答案

试试这个:

public static void getMeListOfObjs(List<? extends Object> al) {
System.out.println(al.get(0));
}

public static void main(String[] args) {

List<String> al = new ArrayList<String>();

String mys1 = "jon";

al.add(mys1);

getMeListOfObjs(al);


}

这不会编译,因为 List<String>不匹配List<Object>

正如 @darijan 指出的通配符 ?使用其后代的所有类扩展类型检查。

我建议阅读更多关于 generics and wildcards 的内容

关于java - 将 List<String> 传递给需要 List<Object> 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17143239/

26 4 0