如何在Java中将Vector 转换为Vector ?

我正在使用带有自定义类对象的JComboBox,并且equals方法被覆盖,并且非常深入地集成到代码中。

问题是如果两个对象在JComboBox下拉列表中相等,那么如果选择了一个,则选择all,并且get selected index返回-1。

有没有办法将Vector转换为Vector ? 我试过了

 Vector v_temp=(ca.courses.get(i).classes); 

 Vector v_temp=(ca.courses.get(i).classes); 

其中Clas_2Clas_2的父Clas_1Clas_3Clas_3的扩展,但它们都没有编译。

我只需要JComboBox不要使用over-ridden equals方法。

*注意我知道我可以将每个单独的元素转换为一个新的数组,但宁愿拥有更高效的内存解决方案。

在代码中更改声明变量的类型不会更改调用equals()方法的类型。 它总是被覆盖的,无论你把它投射到什么。 这就是多态性的工作原理。 如果你想要一个不同的equals实现,你需要创建一个不同的类。

不,不是没有类型不安全。 但你可以将VectorVector Vector虽然哪个可以解决你的问题。

由于Clas_2Clas_2的父类, Clas_1Vector get任何内容Vector的实例,但您无法add任何Clas_2 addVector因为并非所有Clas_2实例都是Clas_1实例。 extends语法进行了区分。

我同意迈克的观点。 看看这篇文章 ,作者建议使用带有一些自定义代码的外部比较器。