initialisation de tableau à type variable

initialisation de tableau à type variable - Java - Programmation

Marsh Posté le 30-01-2008 à 11:44:35    

Bonjour,
 
J'aimerais créer et initialiser un tableau dont les types ne sont pas connus à priori.
Le tableau est en fait un tableau d'Object, mais chaque colonne peut avoir un type different (En gros une matrice avec par exemple une colonne d'int[], une colonne de float[] ...)
 
Je dispose d'un (en fait plusieurs .. d'ou la necessité d'un constructeur generique) tableau contenant les types attendus des colonnes, sous cette forme :
 

Code :
  1. Object[] types = { String.class, int.class, float.class };


 
ensuite :
 

Code :
  1. Object[] values = new Object[nombreDeColonnes]; //ici 3 colonnes donc


 
Et je tente de les initialiser de la maniere suivante :
 

Code :
  1. for (int v = 0; v < values.length; v++)
  2. values[v] = new types[v].getClass().getClasses();


 
Ceci donne une erreur de compilation car le mot clé new attend un type directement après, bien que getClasses() renvoit théoriquement ce qu'on attendrait, à savoir un tableau du type voulu ...
J'ai regardé du coté de la methode .cast() egalement, mais qui ne semble pas non plus fonctionner dans ce cadre la avec des tableaux.
 
Une idée de comment résoudre ce casse tête ?  :??:

Reply

Marsh Posté le 30-01-2008 à 11:44:35   

Reply

Marsh Posté le 30-01-2008 à 13:24:15    

Code :
  1. Array.newInstance(Object.class, nombreDeColonnes)


 
tu dois pouvoir jouer avec ça, non ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 30-01-2008 à 14:52:38    

brisssou a écrit :

Code :
  1. Array.newInstance(Object.class, nombreDeColonnes)


 
tu dois pouvoir jouer avec ça, non ?


 
Ah excellent, c'est exactement ce qu'il me fallait, je ne connaissais pas cette methode.
Merci ! ;)

Reply

Marsh Posté le 30-01-2008 à 20:04:16    

m'en fait je vois pas trop ce que ça amène par rapport à la mèthode native....


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 03-02-2008 à 19:11:18    

types est plutôt de type Class[] plutôt que Object[].
 
L'avantage, c'est que tu peux utiliser :

Code :
  1. types[v].newInstance()


(la classe Class possède une méthode newInstance() qui crée une instance de cette classe).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed