Bonjour tout le monde. Je cherche à rajouter une varible au constructeur d'une class sans étre obliger de le faire manuellement.
Est ce que quelqu'un voit comment faire?
Merci d'avance
Bonjour tout le monde. Je cherche à rajouter une varible au constructeur d'une class sans étre obliger de le faire manuellement.
Est ce que quelqu'un voit comment faire?
Merci d'avance
Bonjour, tu veux ajouter un constructeur pendant l'exécution du programme? pourquoi tu ne peux pas modifier la classe, tu n'as pas la main dessus? tu ne peux pas faire une classe qui en hérite?
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
Il me semble que tu as déja fait un sujet sur ton problème, inutile d'en faire un nouveau, si tu n'as pas eu de réponse, c'est que ton problème n'est pas clair ou que personne ne connait la réponse.
http://www.developpez.net/forums/sho...85#post3323685
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
je ne peux pas modifier mon constructor car l'application doit étre génèré automatiqument, et je ne vois pas comment fair pour qu'un constructror hérite d'une varible sans la rentré manuellement à la main.....
Comment génères-tu ton constructeur sans arguments?
Sous quelle forme récupère-tu le type d'argument que dois avoir ton constructeur?
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
Je suis désolè je me rend compt que je ne suis vraiment pas claire dans mes question je vais essayer d'aller droit au but, je doit créer un application en java qui reçoit des varibale en paramètre, pour ce problème la je suis passer par un fichier properties, ensuite avec les variables que j'ai récuéré je veux les insérer dans mon constructeur, après le constructeur modifier j'exporte mon application en .war et je la met sur un serveur jboss. Mon problème est de justement donnée les varible au constructeur, car mon application a pour but de crée des .war automatiquement avce les varibles que je lui aurais passer dans le fichier properties....
Je me souviens très bien t'avoir donné une ébauche de solution dans ton premier message il y a quelques jours.
Maintenant tu dis que tu veux ajouter des arguments à ton constructeur, ok mais dis-nous comment tu génères ton constructeur (montre nous ton code) et on te dira comment ajouter des arguments.
On a bien compris ton objectif, maintenant il faut rentrer dans le détail
Je trouve le sujet intéressant mais je me pose une question, à quoi va servir un programme ayant simplement un constructeur, des attributs et des getters/setters?
Il doit bien faire quelque chose non? ce ne sont que de simples Beans?
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
Donc j'ai une méthode entry qui me sert à rentré des valeurs dans une bas de donnée. Pour cela je passe en paramètre d'entré une class InfoMaster qui est un constructeur.
Quand je vais accéder à ma méthode entry sous InfoPaht de microsoft, j'aurais tout les chmaps qui ce trrouve dans mon constructeur.
ensuit le constructeurs va avoir des variables qui vont changer selon l'application que mon programme va générer. dans ce cas la les variable son le xm22; xm24;xm25
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 public RtEntry entry(InfoMaster m) throws Exception { Connection connAuthentification; String queryAuthentification; //String results; try { Context initCtx = new InitialContext(); DataSource ds =(DataSource)initCtx.lookup("java:MSSQLAUTHDS"); connAuthentification = ds.getConnection(); } catch(Exception e){ throw e; } ResultSet resultsAuthentification; try { //varLogin="not_ok"; Statement stmtAuthentification = connAuthentification.createStatement(); queryAuthentification = "EXEC rGUID"; queryAuthentification = "SELECT users.firstName, lastName FROM users,activity,company,ilanTspid WHERE users.company = company.id and users.login ='" +m.getlogin()+ "' and users.password ='"+m.getPassword()+"' and ilanTspid.company = company.id and ilanTspid.GILvalue='"+m.getIlan()+"' and activity.company = company.id and activity.activity='"+m.getActivity()+"';"; resultsAuthentification = stmtAuthentification.executeQuery(queryAuthentification); RtEntry RtE = new RtEntry(); String erreurLog = "401"; String okLog = "200"; String ErreurEXEC = "Erreur sur EXEC rGUID"; if(resultsAuthentification.next()) { m.setlogin(resultsAuthentification.getString("firstName")+ resultsAuthentification.getString("lastName")); Connection conn; String query; String ret; try { Context initCtx = new InitialContext(); DataSource ds =(DataSource)initCtx.lookup("java:MSSQLTESTDS"); conn = ds.getConnection(); } catch(Exception e){ throw e; } ResultSet results; try { Statement stmt = conn.createStatement(); query = "EXEC rGUID"; String M_parent_id; results = stmt.executeQuery(query); if(results.next()) { /*if (m.getM_parent_id().equals("")) { M_parent_id = "{00000000-0000-0000-0000-00000000000}"; } else {}*/ M_parent_id = m.getParent_id(); ret = results.getString(1); query = "INSERT INTO mmskuma(id,parent_id,state,GILstamp,ILAN,user_id,activity,xm22,xm24,xm25) VALUES('" + results.getString(1) + "','" + M_parent_id + "','a','" + m.getTimestamp()+ "','" + m.getIlan()+ "','" + m.getlogin()+ "','" + m.getActivity()+ "','" + m.getXm22() + "','" + m.getXm24() + "','" + m.getXm25() + "');"; stmt.executeUpdate(query); conn.close(); RtE.setEtat(okLog); RtE.setId(ret); return RtE; } RtE.setEtat(ErreurEXEC); RtE.setId("00000000-0000-0000-0000-00000000000"); return RtE; } catch(Exception e){ conn.close(); throw e; } } RtE.setEtat(erreurLog); RtE.setId("00000000-0000-0000-0000-00000000000"); return RtE; } catch(Exception e){ connAuthentification.close(); throw e; } }
j'aimerais pouvoir changer c'est variable pour chaque application que je génère, les autres variables reste "constante"
c'est aplication que je créer son des Web service que je doit mettre sur un serveur.
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109 package ch.gilnet.ws; import java.sql.Timestamp; public class InfoMaster { private String parent_id; private String xm22; private String xm24; private String xm25; private String ilan; private String login; private String activity; private String password; private String timestamp; public InfoMaster() { super(); } public InfoMaster( String parent_id, String xm22, String xm24, String xm25, String ilan, String login, String activity, String password, String timestamp) { super(); this.parent_id = parent_id; this.xm22 = xm22; this.xm24 = xm24; this.xm25 = xm25; this.ilan = ilan; this.login = login; this.activity = activity; this.password = password; this.timestamp = timestamp; } public String getParent_id() { return parent_id; } public void setParent_id(String parent_id) { this.parent_id = parent_id; } public String getXm22() { return xm22; } public void setXm22(String xm22) { this.xm22 = xm22; } public String getXm24() { return xm24; } public void setXm24(String xm24) { this.xm24 = xm24; } public String getXm25() { return xm25; } public void setXm25(String xm25) { this.xm25 = xm25; } public String getIlan() { return ilan; } public void setIlan(String ilan) { this.ilan = ilan; } public String getlogin() { return login; } public void setlogin(String login) { this.login = login; } public String getActivity() { return activity; } public void setActivity(String activity) { this.activity = activity; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getTimestamp() { Timestamp ts = new Timestamp(System.currentTimeMillis()); timestamp = ts.toString(); return timestamp; } }
J'avoue que je ne comprends plus rien...où se trouve la génération de code là dedans?
J'ai l'impression que tu veux simplement changer les valeurs de xm22, xm24, xm25.
Ces paramètres sont déja dans le constructeur de InfoMaster.
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
si j'export mon application maintenant j'aurais un .war, je le met sur le serveur, je me conecte avec infoPaht je lance ma méthode entry j'aurais donc des case xm22 xm24 xm25 ou je peux rentré des strings maintenant si je veux recréer un nouveaux .war avec des champs xmtoto xmtata qui sont des integer, je suis obliger de changer le constructor pour que dans infoPath j'ai les nouveau champs ou je peux inserer c'est fois ci des integer
Et pourquoi ne pas faire 2 constructeurs?
Encore une fois, InfoMaster est bien une classe générée?, où se trouve le code qui la génère?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public InfoMaster( String parent_id, String xm22, String xm24, String xm25, String ilan, String login, String activity, String password, String timestamp) {} public InfoMaster( String parent_id, Integer xmtoto, Integer xmtata, String ilan, String login, String activity, String password, String timestamp) {}
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
info master n'est une class génèrer, c'est moi qui l'ai taper, est ce qu'il est possible de refaire un Infomaster avec des valeurs pret défini, je ne peux pas fair deux constructeur car les variables xmtoto xm tata je ne les connaient pas à l'avance, je les récupère du fichier properties
Tu peux faire ceci :Comme ça tu as un tableau de paramètres de taille et de type variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public InfoMaster( String parent_id, String ilan, String login, String activity, String password, String timestamp, Object[] parametresInconnus) {}
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
mais pour génèrer les accesseurs je doit fair comment est pour passer les valeurs de mon properties au paramétre du constructeur je fais comment?
Le plus simple est d'ajouter les properties directement dans le constructeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public InfoMaster( String parent_id, String ilan, String login, String activity, String password, String timestamp, Properties properties) {} public String getProperty(String key) { return properties.getProperty(key); }
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
ok est maintenant je fais comment pour génèrer les accesseurs??
Un accesseur sur l'objet Properties tel que je l'ai mis précédemment devrait suffir.
Les composants SWING | Les layouts SWING | doc javase 6 | CORBA | XSLT | BDD Derby embarquée
Pensez au bouton une fois le problème résolu
Comment utiliser la fameuse balise CODE ?
Je n'aime pas trop répondre de cette manière mais as-tu réellement besoin de ces accesseurs ? Des accesseurs génériques ne sont-ils pas suffisants ? (ce n'est effectivement pas le cas si tu n'as pas la main sur la partie qui va invoquer ces accesseurs).
Maintenant, si ta problématique est de générer le code d'un JavaBean, pourquoi ne pas se tourner vers des moteurs de génération de fichier à base de template comme http://velocity.apache.org/ ? Ensuite il faut compiler le fichier java généré et le packager dans ton WAR.
si je comprend bien, le fichier properties doit étre au même niveau dans mon projet que mon info master?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager