OVH Cloud OVH Cloud

Reflection et instanciation de classe

3 réponses
Avatar
Bernard Koninckx
Bonjour à tous,

Est-il possible de créer dynamiquement une instance d'inner class à partir
d'une autre que celle qui englobe l'inner class.

Ex. :
Je souhaite instancier Test3 à partir d'une classe TableModelObject.
Voici la structure :

Test
Test2
Test3 extends Test2

TableModelObject
=> essaye d'instancier un object de type Test3


Merci d'avance pour toutes vos remarques, ...

Bernard

3 réponses

Avatar
Eric Estievenart
Une classe inner a par defaut un pointeur implicite sur l'instance
de sa classe parrent, a moins que celle ci ne soit definie en static.

Essaye:

class Test {
static class Test2 { ... }
static class Test3 extends Test2 { ... }
}

puis new Test.Test3( ... ) depuis tablemodel

--
Steve
Avatar
Bernard Koninckx
Merci,

Je vais essayer ça demain ...

Bernard

"Eric Estievenart" a
écrit dans le message de news:

Une classe inner a par defaut un pointeur implicite sur l'instance
de sa classe parrent, a moins que celle ci ne soit definie en static.

Essaye:

class Test {
static class Test2 { ... }
static class Test3 extends Test2 { ... }
}

puis new Test.Test3( ... ) depuis tablemodel

--
Steve


Avatar
Bernard Koninckx
Oui mais le problème c'est que je ne peux pas utiliser new puisque je ne
connais pas le type d'objet de base.
Je suis obligé dans ce cas là, d'utiliser la reflection. Et pour créer une
instance utiliser classType.newInstance() ou constructor.newInstance(Object
[]);
Je n'ai fais que donner une situation particulière générant des exceptions.

Bernard

"Eric Estievenart" a
écrit dans le message de news:

Une classe inner a par defaut un pointeur implicite sur l'instance
de sa classe parrent, a moins que celle ci ne soit definie en static.

Essaye:

class Test {
static class Test2 { ... }
static class Test3 extends Test2 { ... }
}

puis new Test.Test3( ... ) depuis tablemodel

--
Steve