Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:向量中的对象_Java_Oop - Fatal编程技术网

Java:向量中的对象

Java:向量中的对象,java,oop,Java,Oop,如果向量包含的引用指向正确的对象(现在是字符串),为什么我们需要将元素强制转换为字符串来使用元素的方法?这是因为您没有声明向量的元素类型,所以编译器假定元素只是对象。试试这个: Vector v = new Vector(); String element = "Object" v.add(element); char c = ((String)v.get(0).charAt(0); 从Java2平台v1.2开始,该类被改装为 实现List接口,使其成为Java 集合框架。与新的集合实现不同

如果向量包含的引用指向正确的对象(现在是字符串),为什么我们需要将元素强制转换为字符串来使用元素的方法?

这是因为您没有声明向量的元素类型,所以编译器假定元素只是对象。试试这个:

Vector v = new Vector();
String element = "Object"
v.add(element);

char c = ((String)v.get(0).charAt(0);
从Java2平台v1.2开始,该类被改装为 实现List接口,使其成为Java 集合框架。与新的集合实现不同, 向量是同步的。如果不需要线程安全的实现, 建议使用ArrayList代替Vector

资料来源:

正如上面提到的,您没有指定向量将包含什么类型的对象。因此,Java假定向量中的元素属于Object类型,Object是最通用的类型。因此,您需要将其转换为适当的类型,以便执行特定于类型的操作


我鼓励您访问上面提供的链接,以了解有关您计划使用的集合的更多信息。

您需要强制转换,因为您没有使用泛型。您想要实现什么?正如@pablochan所说,并且:因为它不是泛型集合getint index将返回对象。这也适用于泛型集合,例如新的AARAYLIST,除了泛型在编译过程中添加类型安全性。考虑寻找新的教程:向量是一个非常古老且基本不受欢迎的类;泛型于2004年出现在Java5中。也许试试。
Vector<String> = new Vector<>(); // new Vector<String>() if you're using Java6 or older