在java中向泛型集合添加数据

在java中向泛型集合添加数据,java,generics,Java,Generics,是否有任何方法可以将数据添加到Java中的通用集合中。 例如:- import java.util.List; 导入java.util.Vector; 公共类测试泛型{ 公共静态void main(字符串args[]){ 向量AVector您不需要使用?扩展数字: Vector<Number> superNumberList = null; ... superNumberList = new Vector<Number>(); superNumberList.add(ne

是否有任何方法可以将数据添加到Java中的通用集合中。 例如:-

import java.util.List;
导入java.util.Vector;
公共类测试泛型{
公共静态void main(字符串args[]){

向量A
Vector您不需要使用
?扩展数字

Vector<Number> superNumberList = null;
...
superNumberList = new Vector<Number>();
superNumberList.add(new Integer(4));
superNumberList.add(new Float(4));
Vector superNumberList=null;
...
superNumberList=新向量();
superNumberList.add(新整数(4));
superNumberList.add(新的Float(4));

这确实解释了原因,但它没有回答“有没有办法…”部分。您确定通配符是多余的吗?如果客户端代码已经定义了一个
向量
,它无法在没有未选中显式转换的情况下将其作为
向量
传入。如果客户端代码已经定义为向量,您将永远无法向其添加浮点。此外,将向量显式转换为向量是错误的r、 类似地,将向量强制转换为向量实际上,您可以在丑陋的强制转换后将
浮点
添加到
向量
(只有当您尝试将其作为
整数
)时才会出现问题;您也可以将丑陋的强制转换为
(向量)
使编译器吞下它。您可以让编译器吞下它,但执行后仍会导致运行时异常。
class SuperClassWithVector<T extends Number>{
    protected Vector<T> myVector;
}

class FloatSubClass extends SuperClassWithVector<Float>{
   // here myVector takes Float
}
Vector<Number> superNumberList = null;
...
superNumberList = new Vector<Number>();
superNumberList.add(new Integer(4));
superNumberList.add(new Float(4));