作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最后两个语句有什么区别?为什么一种说法有效而另一种则无效?
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/
我是一名优秀的程序员,十分优秀!