当以下容器有用时
Vector<?> wilcardVector;
如果我能做到这一点就是创建新容器
wilcardVector = new Vector<String>();
或添加null
值
wilcardVector.add(null);
在编译时尝试添加其他类型或使用不同的泛型方法传递失败。那有什么用呢?
答案 0 :(得分:1)
无界通配符的一个有效用例是将它用作方法参数,当您仅使用那些独立于类型参数的Vector方法时,例如size()
,isEmpty()
等:
类似的东西:
void sampleMethod(Vector<?> vector) {
if (vector.isEmpty()) {
// your logic
}
}
并且编译器允许将任何Vector
传递给上面的sampleMethod
。
答案 1 :(得分:0)
Vector<?> wilcardVector;
表示
Vector<?> wilcardVector=null;
并且调用wilcardVector.add(null);
将导致例外,因为wilcardVector = null
所以,你要使用
wilcardVector = new Vector<String>();
当您添加&#34;仅&#34;时,应该起诉{p> wilcardVector = new Vector<String>();
字符串,没有别的。