Bonjour,
J'ai essayé d'executer un constructeur d'une classe dans la methode main d'une autre classe en utilisant la classe class et les notions de la reflexivité mais le probleme est lorsque je compile ma classe main j'ai pas d'erreur mais sans avoir de resultat..s'il vous plait aidez moi (sachant que je dois le faire en utilisant la classe "class" et ses methodes). voici les 2 classes que j'ai fait et merci d'avance pour l'aide:
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 //****la premiere classe bonjour********* package pac; public class bonjour { public bonjour (String chaine ) { System.out.println("bonjour"); System.out.println(chaine); } } //******la classe main***************** package pac; public class principal { public static void main(String[]args) {String msg=" bon"; try { // Récupération de la classe bonjour Class classe = Class.forName ("pac.bonjour"); // Récupération du constructeur prenant en paramètre une chaîne de caractères java.lang.reflect.Constructor constructeur = classe.getConstructor (new Class [] {Class.forName ("pac.bonjour")}); constructeur.newInstance (new Object [] {msg}); } catch (ClassNotFoundException e) { // La classe n'existe pas } catch (NoSuchMethodException e) { // La classe n'a pas le constructeur recherché } catch (InstantiationException e) { // La classe est abstract ou est une interface } catch (IllegalAccessException e) { // La classe n'est pas accessible } catch (java.lang.reflect.InvocationTargetException e) { // Exception déclenchée si le constructeur invoqué // a lui-même déclenché une exception } catch (IllegalArgumentException e) { // Mauvais type de paramètre // (Pas obligatoire d'intercepter IllegalArgumentException) } } }
Partager