以下是否在Java中有效:
public Vector <Object> objVector = new Vector <Object>(50);
我默认知道这些值存储为对象,但我想知道如何按类型限制内容...
由于
答案 0 :(得分:9)
这是古老的代码。
使用泛型,并使用现代集合类型(don't use Vector),然后自动获得编译时检查:
List<String> list = new ArrayList<String>()
list.add(new Foo()); // compile-time failure
list.add("SomeString"); // ok
答案 1 :(得分:2)
我认为你要找的是generics:
public Vector<String> objVector = new Vector<String>(50);
答案 2 :(得分:1)
I would like to know how to restrain the contents by type...
在实例化向量时只需指定类型:
public Vector <concreteType> objVector = new Vector <concreteType>(50);
使用泛型,您可以指定基于层次结构的类型限制:
class yourClass<TYPE extends SomeType>{
public yourClass(){
public Vector <TYPE> objVector = new Vector <TYPE>(50);
}
}
在最后一个示例中,TYPE可以是扩展SomeType(包含SomeType)的任何类型。 您可以使用关键字implements来将TYPE的类型限制为接口而不是类。
答案 3 :(得分:0)
有效的&#39;,它的语法很好:
public Vector <Object> objVector = new Vector <Object>(50);
在我使用的NetBeans平台8:0:2中,它将显示过时集合,使用ArrayList
要好得多,尽管{{} {1}}有一个优点,它几乎可以存储任何东西。
宣言:
Vector
构造一个空的Vector,这种类型的Vector可以添加&#39;整数,布尔值,ArrayList和其他原始数据类型和引用。