我想知道以下代码为什么不起作用:
如果类型是
我在想,为什么下面的代码不起作用:
Collection <? super String> col = new ArrayList<String>();
col.add(new Object());// does not compile
col.add("yo!");// compiles indeed;
如果类型是
<? super String>
,它可以包含任何超类(包括String)的内容,对吗?
<? super String>
只能添加字符串类型。Object
不一定是字符串类型。尝试执行以下代码:Object myObj = new String();
这段代码应该可以正常工作。 - Maroun<? super String> col = new ArrayList<Object>();
时它能够编译通过!但是 Object 并不是 String 的子类啊!这些泛型真是让人头疼。 - Rollerball