-2
votes

Liste java.lang.classcastException: java.util.vector ne peut pas être lancé vers Java.Util.ArrayList

Ceci est mon code simple. J'ai besoin d'un clone de la liste de l'arraylaystatu. GTBETOBSOYENIBELGE est une entité. Mais il y a un problème de coulée java.lang.classcastException: java.util.vector ne peut pas être jeté à Java.Util.ArlyList . Merci xxx

tout le code est-ce.


1 commentaires

Cet extrait ne provoque pas l'erreur que vous décrivez. Pouvez-vous partager un exemple de reproductible minimal ?


3 Réponses :


0
votes

La méthode servis.listonaystatus4belge code> renvoie un Vecteur . Un vecteur code> implémente la liste code> interface code> mais n'est pas un arayliste code>. Par conséquent, vous ne pouvez pas la jeter à un.

regarder l'énoncé problématique: p> xxx pré>

Vous copiez un vecteur et que vous l'attribuez à cloneonaystatu code >. Vous devriez être capable de le faire comme ceci: P>

cloneOnayStatu = new ArrayList<>(listOnayStatu);


3 commentaires

Merci klitos mais la méthode clone () ne fonctionne pas avec la liste.


Lorsque ListonAnstatu est mis à jour, cloneonaystatu est la mise à jour en même temps. Je veux que ClononaAnstatu ait la taille précédente de ListonAnstatu lorsqu'il est mis à jour.


The clone () méthode et la nouvelle arraylist neuf <> () constructeur crée des copies qui sont pas mis à jour lorsque l'original est mis à jour. Cependant, notez que ces copies sont simplement des copies des références . Si les objets référencés sont eux-mêmes mis à jour, les deux listes verront la mise à jour, car les éléments des deux listes se rapportent au même objet. Peut-être que vous voulez une copie profonde. Pour cela, vous devrez faire une itération sur tous les éléments et créer une copie de chaque élément.



1
votes

Vous pouvez simplement utiliser le constructeur de copie de ArrayList code> qui accepte une collection EXTENDE E> CODE>:

List<GtbEtobsOYenibelge> listOnayStatu = servis.listOnayStatus4Belge(user.getBirimId().getId());
List<GtbEtobsOYenibelge> cloneOnayStatu = new ArrayList<>(listOnayStatu);


0 commentaires

0
votes

Vous pouvez essayer de l'enregistrer en tant que nouvelle arraylist.

cloneOnayStatu.addAll(listOnayStatu);


0 commentaires