作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一定是错过了一些关于 Java 泛型的东西,但为什么这不起作用?
List<String> list = new ArrayList<String>();
不能发送到:
method( List<Object> );
但是没有效果?怎么会?
但是如果方法是:
method( Object o )
它可以用于:
method( new String("hello") )
没有任何问题
q1) String确实继承了Object,为什么不能传递给它?
List<Object>
q2) 为什么
method( List<? extends Object> )
工作?有什么区别?
最佳答案
看这个:
List<String> stringList = new ArrayList<String>();
List<Object> objectList = stringList; // if this was allowed…
objectList.add(new Object());
String s = stringList.get(0); // …this would throw a ClassCastException
显然,这不能像 List<String>
那样工作将包含 Object
之后,抛弃泛型旨在为您提供的所有类型安全。
关于java - List<A> 不能发送到方法( List<superclass-of-A> )——为什么不呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1393072/
我是一名优秀的程序员,十分优秀!