Toutes mes excuses... L'ultime erreur qui restait provenait du fait que j'avais ajout� un test stupide qui ne faisait pas appel � Array.newInstance() lorsque la taille du tableau � traiter �tait �gal � 0...
Ca marche maintenant ! Hourra ! Je vous remercie tous beaucoup.
Le vendredi, 10 jan 2003, � 15:14 Europe/Paris, Zeljko VELAJA a �crit :
Voici un exemple qui marche : import java.lang.reflect.*; import java.util.*;class A { } class B extends A { } public class Essai { static A[] getObjects(Object[] list, Class aclass) { Vector v = new Vector(); for(int i=0; i<list.length; i++) { if (aclass.isInstance(list[i])) v.add(list[i]); } A[] result = (A[]) Array.newInstance(aclass, v.size()); for(int i=0; i<v.size(); i++) { Array.set(result, i, v.elementAt(i)); } return result; } public static void main(String[] args) { Object[] list = {new B(), new B(), new B()}; A[] as = getObjects(list, B.class); B[] bs = (B[]) as; } }
