Bonjour à tous,
Depuis un moment, je cherche sans résultats une solution propre pour le problème suivant : créer une nouvelle instance d'une classe générique (invoquer son constructeur par défaut) dans le cas où la classe peut être n'importe quelle extension d'un classe donnée ... un bout de code peut-être ?
Mais est-ce seulement possible ? J'aurais été tenté par plusieurs choses plus aberrantes les unes que les autres du genre de ce qui suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 private class Foo<Z extends Bar> { // ... du bazar ici, constructeur etc... // une méthode public void maMéthode () { // admettons qu'ici j'ai envie d'instancier un Z (j'ai mes raisons) Z instance = ...; // ensuite je peux disposer de ma nouvelle instance tout fraîche instance.abuseDeMoi(); ... } }
Mais comme rien de tout ça ne marche, j'ai opté pour une magouille (que je ne divulguerai pas ici pour ne choquer personne, déjà que javac se plaint ...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Z instance = Z.class.newInstance(); Z instance = Z.makeInstance(); // avec une méthode statique dans Z Z instance = System.pray("allez javac, sois cool, fais-le pour moi");
Donc est-ce que quelqu'un dans l'assistance verrait une solution à ceci, ou tout au moins, existe-t-il une explication logique au fait que ce ne serait pas possible ?
Merci d'avance ...
Partager