Bonjour � tous,
J'ai toujours eu des probl�mes avec la gestion des types dans les tableaux en Java, mais l� je suis compl�tement bloqu�. Voil� ce que j'essaye d'obtenir: j'ai un objet qui peut contenir plusieurs autres objets de types variables, mais descendant tous d'une m�me classe (BaseObject). Ce que je veux faire, c'est r�cup�rer par exemple au sein de cette liste tous les objets d'une classe voulue (BaseObject ou descendant). Voil� ce que j'ai:
------------------------------------------------------------------------ ------------
ArrayList _list << liste h�t�rog�ne contenant mes objets
public BaseObject[] getObjects (String className)
{
Iterator i = _list.iterator();
ArrayList subset = new ArrayList();
try
{
while (i.hasNext())
{
Object obj = i.next();
if (Class.forName(className).isInstance(obj))
{
subset.add((BaseObject)obj);
}
}
}
catch (java.lang.ClassNotFoundException e)
{
return new BaseObject[0];
}
BaseObject[] objects = (BaseObject[])subset.toArray(new BaseObject[0]);
Arrays.sort(objects, new ObjectComparator());
return objects;
}
------------------------------------------------------------------------ ------------
Sachant que l'argument className correspond au nom de la classe (du "type") de l'objet que je veux extraire de la liste. Par exemple, "core.object.BaseObject" ou "core.object.data.DataObject", avec DataObject un descendant de BaseObject.
Cette m�thode fonctionne: c'est � dire que j'arrive bien � r�cup�rer les objets du type que je souhaite (je le vois dans une console Jython, o� tous les objets du tableau BaseObject[] renvoy� sont bien du type voulu). L� o� ca coince, c'est lorsque je veux faire un typecasting du tableau BaseObject[] qui m'est renvoy�.
Par exemple, si j'ai s�lectionn� tous les objets de type DataObject, il me para�ssait normal de faire:
DataObject[] dataObjects = (DataObject[])objectList.getObjects("core.object.data.DataObject");
A priori en effet, le tableau BaseObject[] ne contient QUE des objets descendants de BaseObject, plus pr�cis�ment des DataObject. Et bien s�r, ca ne marche pas... Lors de la compilation, pas de probl�me, mais � l'ex�cution, j'ai un:
Exception occurred during event dispatching:
java.lang.ClassCastException: [Lcore.object.BaseObject;
Arrg... Ais-je loup� quelque chose ?
Aur�lien Mazurie
- Re: Typecasting et tableaux Aurelien Mazurie
- Re: Typecasting et tableaux Beno�t Cabot
- RE: Typecasting et tableaux Erik Mazoyer
- Re: Typecasting et tableaux Remi Forax
- Re: Typecasting et tableaux Aurelien Mazurie
- RE: Typecasting et tableaux Zeljko VELAJA
- Typecasting et tableaux: ca marche ! Aurelien Mazurie
- Re: Typecasting et tableaux Dominique Gallot
- RE: Typecasting et tableaux Erik Mazoyer
- Re: Typecasting et tableaux Dominique Gallot
- Re: Typecasting et tableaux Guillaume Desnoix
