我在java中看到一些例子,其中向量被声明为
Vector v = new Vector()
在某些例子中,
Vector<String> = new Vector<String>()
我不确定后一种声明是做什么的?它是否指定Vector shud包含的对象的类型?
如果是,那么如果我使用第一个声明声明一个Vector我可以使用任何类型的对象,如果我使用第二个声明,那么该对象只能是&lt;&gt;中的类型?
答案 0 :(得分:4)
这是Java的一个名为Generics的功能。您可以找到Oracle官方资源here。
Vector v = new Vector();
与
相同Vector<Object> v = new Vector<Object>()
答案 1 :(得分:3)
第一行定义Vector
Object
个Vector
,可以是任何类型。
第二行使用Java Generics并定义只保留String
的{{1}}。
答案 2 :(得分:0)
正如其他海报所回答的那样,你确实在处理“通用”课程。
我建议不要使用Vector clsas,因为它已被弃用。相反,请使用ArrayList。
使用泛型的一个很好的优点是编译器将为您提供所谓的“类型安全”。当您最初将ArrayList声明为ArrayList<Ball>
时,编译器将只允许您在该列表中存储类Ball
(或其子类)的对象。此外,每当您从列表中选择一个对象(即myList.get(index)
)时,从该调用返回的对象将自动转换为Ball
。
编写泛型类可能很棘手,但使用它们可以让您真正清理代码。
如果您想了解更多信息,请点击此处有关于仿制药的Java Tutorial的链接。