gpt4 book ai didi

java - 泛型,传递错误的类型?

转载 作者:行者123 更新时间:2023-12-02 09:06:03 27 4
gpt4 key购买 nike

最后两个语句有什么区别?为什么一种说法有效而另一种则无效?

package Main;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {

public static void printIt(List<Object> l)
{
System.out.println(l);
}

public static void main(String[] args) {
List<String> l =new ArrayList<>();
l.add("A");

//what is the differance between the following statments ?

printIt(Arrays.asList("A")); // it compiles successfully
printIt(l); // it does not compile

}
}

最佳答案

问题是printIt()方法期望 List<Object>作为参数,但我们传递 List<String>对此,这就是为什么存在编译问题。将方法 printIt() 中的参数 List 替换为如下:

    public static void printIt(List<? extends Object> l)
{
System.out.println(l);
}

现在两者都将编译,

关于java - 泛型,传递错误的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38054519/

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