Vector和Vector<>之间有什么区别?

时间:2012-09-12 19:50:07

标签: java vector

我在java中看到一些例子,其中向量被声明为

Vector v = new Vector() 

在某些例子中,

Vector<String> = new Vector<String>()

我不确定后一种声明是做什么的?它是否指定Vector shud包含的对象的类型?

如果是,那么如果我使用第一个声明声明一个Vector我可以使用任何类型的对象,如果我使用第二个声明,那么该对象只能是&lt;&gt;中的类型?

3 个答案:

答案 0 :(得分:4)

这是Java的一个名为Generics的功能。您可以找到Oracle官方资源here

Vector v = new Vector();  

相同
Vector<Object> v = new Vector<Object>()  

答案 1 :(得分:3)

第一行定义Vector ObjectVector,可以是任何类型。

第二行使用Java Generics并定义只保留String的{​​{1}}。

答案 2 :(得分:0)

正如其他海报所回答的那样,你确实在处理“通用”课程。

我建议不要使用Vector clsas,因为它已被弃用。相反,请使用ArrayList

使用泛型的一个很好的优点是编译器将为您提供所谓的“类型安全”。当您最初将ArrayList声明为ArrayList<Ball>时,编译器将只允许您在该列表中存储类Ball(或其子类)的对象。此外,每当您从列表中选择一个对象(即myList.get(index))时,从该调用返回的对象将自动转换为Ball

编写泛型类可能很棘手,但使用它们可以让您真正清理代码。

如果您想了解更多信息,请点击此处有关于仿制药的Java Tutorial的链接。