列表<;对象>;java.lang.ClassCastException:java.util.Vector不能强制转换为java.util.ArrayList
这是我的简单代码。我需要一个ArrayList listOnayStatu的克隆。GtbEtobsOYenibelge是一个实体。但是有一个强制转换问题java.lang.ClassCastException:java.util.Vector不能强制转换为java.util.ArrayList。 多谢各位列表<;对象>;java.lang.ClassCastException:java.util.Vector不能强制转换为java.util.ArrayList,java,list,arraylist,vector,Java,List,Arraylist,Vector,这是我的简单代码。我需要一个ArrayList listOnayStatu的克隆。GtbEtobsOYenibelge是一个实体。但是有一个强制转换问题java.lang.ClassCastException:java.util.Vector不能强制转换为java.util.ArrayList。 多谢各位 List<GtbEtobsOYenibelge> listOnayStatu = new ArrayList<>(); List<GtbEtobsOYenibel
List<GtbEtobsOYenibelge> listOnayStatu = new ArrayList<>();
List<GtbEtobsOYenibelge> cloneOnayStatu;
listOnayStatu = servis.listOnayStatus4Belge(user.getBirimId().getId());
cloneOnayStatu = ((List) ((ArrayList) listOnayStatu).clone());
List listOnayStatu=new ArrayList();
列出克隆状态;
listOnayStatu=servis.listOnayStatus4Belge(user.getBirimId().getId());
cloneOnayStatu=((List)((ArrayList)listOnayStatu.clone());
所有代码都是这样。方法
servis.LISTONAYSTATUS4BERGE
返回一个。向量
实现了列表
接口,但不是数组列表
。所以你不能把它扔给一个人
看看有问题的陈述:
cloneOnayStatu = ((List) ((ArrayList) listOnayStatu).clone());
您正在复制一个向量并将其分配给cloneOnayStatu
。您应该能够这样做:
cloneOnayStatu = (List<GtbEtobsOYenibelge>) ((Vector<GtbEtobsOYenibelge>)listOnayStatu).clone();
您只需使用
ArrayList
的复制构造函数,它接受集合,您可以尝试将其保存为新的ArrayList
List<GtbEtobsOYenibelge> listOnayStatu = new ArrayList<>();
List<GtbEtobsOYenibelge> cloneOnayStatu;
listOnayStatu = servis.listOnayStatus4Belge(user.getBirimId().getId());
cloneOnayStatu = new ArrayList(listOnayStatu);
此代码段不会导致您描述的错误。您可以共享完整的列表吗?谢谢Klitos,但是clone()方法不适用于列表。更新listOnayStatu时,cloneOnayStatu将同时更新。我希望cloneOnayStatu在更新时具有listOnayStatu的以前大小。clone()
方法和new ArrayList()都可以
constructor创建的副本在原始副本更新时不会更新。但是,请注意,这些副本只是参考文件的副本。如果引用的对象本身已更新,则两个列表都将看到更新,因为两个列表的元素都引用同一个对象。也许你想要一份深度拷贝。为此,您需要迭代所有元素并创建每个元素的副本。
List<GtbEtobsOYenibelge> listOnayStatu = servis.listOnayStatus4Belge(user.getBirimId().getId());
List<GtbEtobsOYenibelge> cloneOnayStatu = new ArrayList<>(listOnayStatu);
List<GtbEtobsOYenibelge> listOnayStatu = new ArrayList<>();
List<GtbEtobsOYenibelge> cloneOnayStatu;
listOnayStatu = servis.listOnayStatus4Belge(user.getBirimId().getId());
cloneOnayStatu = new ArrayList(listOnayStatu);
cloneOnayStatu.addAll(listOnayStatu);