我将JComboBox与自定义类对象一起使用,并且equals方法被覆盖,并且非常深入地集成到代码中。
问题是,如果在JComboBox下拉列表中两个对象相等,那么如果选择了一个,则全部选中,并且get selected索引返回-1。
有没有一种方法可以将a强制转换Vector<ObjectA>为a Vector<ObjectB>?我试过了
Vector<ObjectA>
Vector<ObjectB>
Vector<Clas_2> v_temp=(ca.courses.get(i).classes);
和
Vector<Clas_3> v_temp=(ca.courses.get(i).classes);
其中Clas_2是的父项Clas_1,Clas_3是的扩展项Clas_1,但它们都不编译。
Clas_2
Clas_1
Clas_3
我需要的只是JComboBox,不要使用重写的equals方法。
*注意,我知道我可以将每个单独的元素转换为新数组,但是宁愿有一个内存效率更高的解决方案。
更改代码中声明的变量的类型不会更改所equals()调用的方法。无论将其强制转换为什么,它将始终被覆盖。这就是多态性的工作方式。如果要使用其他相等的实现,则需要创建其他类。
equals()