2014-07-03 3 views
1

Après avoir converti un objet ArrayList en objet []. J'ai alors essayé de convertir cela en un fichier [] qui lance une exception ClassCastException. Lorsque je l'ai exécuté dans le débogueur Eclipse, je vois que l'objet [] contient deux objets Fichier.Impossible de convertir le fichier en fichier apparent, fichier

List<File> list = new ArrayList<File>(); 
list.add(new File("foo.bar")); list.add(new File("foo.bar.bar")); 
Object[] objlist = list.toArray(); 
File[] flist = (File[]) objlist; 

L'exécution de cette lance l'exception suivante:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.io.File; 
at sphinx.file.ResourceGetter.getResources(ResourceGetter.java:37) 
at sphinx.test.Test.main(Test.java:13) 

Eclipse me dit ceci:

Name: objlist.[0] Value: java.io.File 
Value: objlist.[1] Value: java.io.File 

Je ne comprends pas pourquoi cela se passe.

Répondre

2

Essayez

File[] flist = list.toArray(new File[list.size()]); 

OU

File[] flist = list.toArray(new File[]{}); 

Vous ne pouvez pas lancer Object[] à File[]

En savoir plus au poste similaire casting Object array to Integer array error

+0

Merci beaucoup. Ça a marché. C'est tellement stupide que vous devez le dire à Java. – stasiomod

Questions connexes