问题是上面的代码没有使用泛型。
以下方法将起作用:
Vector<Integer> moves = new Vector<Integer>();
move.add(new Integer(x));
里面的类型名称(在 的情况下,是 元素要保存的类型参数)告诉编译器它应该期望什么类型的对象。<>
Vector
E
如果尝试添加指定类型的对象(例如,在本例中,尝试添加 to 和 ),将发生编译时错误,指示正在添加不属于预期类型的对象类型。String
Vector<Integer>
也就是说,应该尽量不要使用Vector
类。出于更多目的,从 Java 集合框架中实现 List
(如 ArrayList)
的类就足够了,并且性能更好。
编辑
虽然与关于泛型的问题没有直接关系,但Adam Paynter在关于使用自动拳击的评论中提出了一个很好的观点。
从Java 5开始,原语及其包装类,例如 并根据需要在彼此之间自动转换。int
Integer
因此,可以将指定为 或文本的值添加到需要 :int
int
Integer
Vector<Integer> v = new Vector<Integer>();
v.add(5); // Not necessary to use an Integer value.