Class c = Class.forName(dataObjectClass.getName()); Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" a écrit dans le message de news: 408a2eea$0$10949$
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
Jacques-Olivier Haenni
Bonjour,
Si Test3 est une inner class non statique de Test2, alors, lors de la création par réflexion, il faut rajouter un argument de type Test2. Par exemple, si Test3 a un constructeur sans argument, il faudra, par réflexion, appeler un constructeur avec un argument de type Test2.
Cet argument supplémentaire est automatiquement rajouté par le compilateur (sauf dans le cas de la réflexion évidemment) pour que l'instance de l'inner classe ait une référence sur la classe englobante.
Jacques-Olivier
Bernard Koninckx wrote:
J'essaye en vain
Class c = Class.forName(dataObjectClass.getName()); Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" a écrit dans le message de news: 408a2eea$0$10949$
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
Bonjour,
Si Test3 est une inner class non statique de Test2, alors, lors de la
création par réflexion, il faut rajouter un argument de type Test2. Par
exemple, si Test3 a un constructeur sans argument, il faudra, par
réflexion, appeler un constructeur avec un argument de type Test2.
Cet argument supplémentaire est automatiquement rajouté par le
compilateur (sauf dans le cas de la réflexion évidemment) pour que
l'instance de l'inner classe ait une référence sur la classe englobante.
Jacques-Olivier
Bernard Koninckx wrote:
J'essaye en vain
Class c = Class.forName(dataObjectClass.getName());
Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" <koninckxbernard@excite.com> a écrit dans le message de
news: 408a2eea$0$10949$a0ced6e1@news.skynet.be...
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
Si Test3 est une inner class non statique de Test2, alors, lors de la création par réflexion, il faut rajouter un argument de type Test2. Par exemple, si Test3 a un constructeur sans argument, il faudra, par réflexion, appeler un constructeur avec un argument de type Test2.
Cet argument supplémentaire est automatiquement rajouté par le compilateur (sauf dans le cas de la réflexion évidemment) pour que l'instance de l'inner classe ait une référence sur la classe englobante.
Jacques-Olivier
Bernard Koninckx wrote:
J'essaye en vain
Class c = Class.forName(dataObjectClass.getName()); Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" a écrit dans le message de news: 408a2eea$0$10949$
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
Bernard Koninckx
Je comprens pas tout à fait ce que tu veux dire. Pourrait tu me donner un exemple ?
Bernard
"Jacques-Olivier Haenni" a écrit dans le message de news: c74p2q$q0$
Bonjour,
Si Test3 est une inner class non statique de Test2, alors, lors de la création par réflexion, il faut rajouter un argument de type Test2. Par exemple, si Test3 a un constructeur sans argument, il faudra, par réflexion, appeler un constructeur avec un argument de type Test2.
Cet argument supplémentaire est automatiquement rajouté par le compilateur (sauf dans le cas de la réflexion évidemment) pour que l'instance de l'inner classe ait une référence sur la classe englobante.
Jacques-Olivier
Bernard Koninckx wrote:
J'essaye en vain
Class c = Class.forName(dataObjectClass.getName()); Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" a écrit dans le message de
news: 408a2eea$0$10949$
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
Je comprens pas tout à fait ce que tu veux dire. Pourrait tu me donner un
exemple ?
Bernard
"Jacques-Olivier Haenni" <Jacques-Olivier.Haenni@elca.ch> a écrit dans le
message de news: c74p2q$q0$1@dc2-03-su-03.dc2.solpa.net...
Bonjour,
Si Test3 est une inner class non statique de Test2, alors, lors de la
création par réflexion, il faut rajouter un argument de type Test2. Par
exemple, si Test3 a un constructeur sans argument, il faudra, par
réflexion, appeler un constructeur avec un argument de type Test2.
Cet argument supplémentaire est automatiquement rajouté par le
compilateur (sauf dans le cas de la réflexion évidemment) pour que
l'instance de l'inner classe ait une référence sur la classe englobante.
Jacques-Olivier
Bernard Koninckx wrote:
J'essaye en vain
Class c = Class.forName(dataObjectClass.getName());
Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" <koninckxbernard@excite.com> a écrit dans le message
de
news: 408a2eea$0$10949$a0ced6e1@news.skynet.be...
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
Je comprens pas tout à fait ce que tu veux dire. Pourrait tu me donner un exemple ?
Bernard
"Jacques-Olivier Haenni" a écrit dans le message de news: c74p2q$q0$
Bonjour,
Si Test3 est une inner class non statique de Test2, alors, lors de la création par réflexion, il faut rajouter un argument de type Test2. Par exemple, si Test3 a un constructeur sans argument, il faudra, par réflexion, appeler un constructeur avec un argument de type Test2.
Cet argument supplémentaire est automatiquement rajouté par le compilateur (sauf dans le cas de la réflexion évidemment) pour que l'instance de l'inner classe ait une référence sur la classe englobante.
Jacques-Olivier
Bernard Koninckx wrote:
J'essaye en vain
Class c = Class.forName(dataObjectClass.getName()); Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" a écrit dans le message de
news: 408a2eea$0$10949$
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
Jacques-Olivier Haenni
Bonjour,
Bernard Koninckx wrote:
Je comprens pas tout à fait ce que tu veux dire. Pourrait tu me donner un exemple ?
Voici un exemple de code. En fait, pour la inner class non statique, il n'est pas possible d'utiliser clazz.newInstance() car il n'y a en fait pas de constructeur sans argument, bien que cela soit caché tant que l'on ne fait pas de réflexion...
import java.lang.reflect.Constructor;
public class Test { public static void main(String args[]) throws Exception { Class clazz = Outer.StaticInner.class; Object o = clazz.newInstance();
class Outer { public static class StaticInner { public StaticInner() { System.out.println("No-arg constructor called in static" + " inner class."); } } public class NonStaticInner { public NonStaticInner() { System.out.println("No-arg constructor called in non" + " static inner class."); } } }
Jacques-Olivier
Bernard
"Jacques-Olivier Haenni" a écrit dans le message de news: c74p2q$q0$
Bonjour,
Si Test3 est une inner class non statique de Test2, alors, lors de la création par réflexion, il faut rajouter un argument de type Test2. Par exemple, si Test3 a un constructeur sans argument, il faudra, par réflexion, appeler un constructeur avec un argument de type Test2.
Cet argument supplémentaire est automatiquement rajouté par le compilateur (sauf dans le cas de la réflexion évidemment) pour que l'instance de l'inner classe ait une référence sur la classe englobante.
Jacques-Olivier
Bernard Koninckx wrote:
J'essaye en vain
Class c = Class.forName(dataObjectClass.getName()); Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" a écrit dans le message
de
news: 408a2eea$0$10949$
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
Bonjour,
Bernard Koninckx wrote:
Je comprens pas tout à fait ce que tu veux dire. Pourrait tu me donner un
exemple ?
Voici un exemple de code. En fait, pour la inner class non statique, il
n'est pas possible d'utiliser clazz.newInstance() car il n'y a en fait
pas de constructeur sans argument, bien que cela soit caché tant que l'on
ne fait pas de réflexion...
import java.lang.reflect.Constructor;
public class Test {
public static void main(String args[]) throws Exception {
Class clazz = Outer.StaticInner.class;
Object o = clazz.newInstance();
class Outer {
public static class StaticInner {
public StaticInner() {
System.out.println("No-arg constructor called in static"
+ " inner class.");
}
}
public class NonStaticInner {
public NonStaticInner() {
System.out.println("No-arg constructor called in non"
+ " static inner class.");
}
}
}
Jacques-Olivier
Bernard
"Jacques-Olivier Haenni" <Jacques-Olivier.Haenni@elca.ch> a écrit dans le
message de news: c74p2q$q0$1@dc2-03-su-03.dc2.solpa.net...
Bonjour,
Si Test3 est une inner class non statique de Test2, alors, lors de la
création par réflexion, il faut rajouter un argument de type Test2. Par
exemple, si Test3 a un constructeur sans argument, il faudra, par
réflexion, appeler un constructeur avec un argument de type Test2.
Cet argument supplémentaire est automatiquement rajouté par le
compilateur (sauf dans le cas de la réflexion évidemment) pour que
l'instance de l'inner classe ait une référence sur la classe englobante.
Jacques-Olivier
Bernard Koninckx wrote:
J'essaye en vain
Class c = Class.forName(dataObjectClass.getName());
Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" <koninckxbernard@excite.com> a écrit dans le message
de
news: 408a2eea$0$10949$a0ced6e1@news.skynet.be...
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
Je comprens pas tout à fait ce que tu veux dire. Pourrait tu me donner un exemple ?
Voici un exemple de code. En fait, pour la inner class non statique, il n'est pas possible d'utiliser clazz.newInstance() car il n'y a en fait pas de constructeur sans argument, bien que cela soit caché tant que l'on ne fait pas de réflexion...
import java.lang.reflect.Constructor;
public class Test { public static void main(String args[]) throws Exception { Class clazz = Outer.StaticInner.class; Object o = clazz.newInstance();
class Outer { public static class StaticInner { public StaticInner() { System.out.println("No-arg constructor called in static" + " inner class."); } } public class NonStaticInner { public NonStaticInner() { System.out.println("No-arg constructor called in non" + " static inner class."); } } }
Jacques-Olivier
Bernard
"Jacques-Olivier Haenni" a écrit dans le message de news: c74p2q$q0$
Bonjour,
Si Test3 est une inner class non statique de Test2, alors, lors de la création par réflexion, il faut rajouter un argument de type Test2. Par exemple, si Test3 a un constructeur sans argument, il faudra, par réflexion, appeler un constructeur avec un argument de type Test2.
Cet argument supplémentaire est automatiquement rajouté par le compilateur (sauf dans le cas de la réflexion évidemment) pour que l'instance de l'inner classe ait une référence sur la classe englobante.
Jacques-Olivier
Bernard Koninckx wrote:
J'essaye en vain
Class c = Class.forName(dataObjectClass.getName()); Object o = c.newInstance();
Mais ça ne fonctionne pas ...
"Bernard Koninckx" a écrit dans le message
de
news: 408a2eea$0$10949$
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