我正在阅读关于泛型中的通配符的
java教程.在以下代码中:
void printCollection(Collection<Object> c) { for (Object e : c) { System.out.println(e); } }
这是否意味着集合c将类型对象作为其元素,我们不能调用c.add(“apple”),
因为“apple”是一个字符串而for循环从集合c中获取任何对象元素?
但我不明白以下代码,
void printCollection(Collection<?> c) { for (Object e : c) { System.out.println(e); } }
此代码使用通配符,表示“元素类型与任何内容匹配的集合”.这是否意味着我们可以添加任何类型的对象,例如c.add(“string”);,
c.add(1);和c.add(new apple()); ?
并且for循环从集合c中获取任何对象e,如果c不是对象类型,我们说c的元素是Integer.这段代码有效吗?这是否意味着它应该被施放?