excusez-moi, mais je ne m'en sors pas trop,
Je pensais m'en tirer avec un truc du genre ci-dessous :
//tableau contenant le type des param�tres du constructeur de mon objet
Class[] paramTypes =
{com.accor.OTA.util.FichierProp,com.accor.OTA.OTAPayload};
//tableau contenant les valeurs des param�tres
Object[] params = {this.PropertiesFile,this.PayloadPart};
try {
java.lang.Class ClasstoCreate = Class.forName(this.PayloadClassName);
java.lang.reflect.Constructor myConstructor =
ClasstoCreate.getConstructor (paramTypes);
java.lang.Object objCreate = myConstructor.newInstance (params);
java.lang.Class ClassCreate = objCreate.getClass();
strTemp = ClassCreate.getMethod("transformtoTC", new Class[] {}).invoke
(objCreate,new Object[]{}) ;
en fait, j'ai une erreur de compile dont je ne comprends pas la
signification
compile:
[javac] Compiling 17 source files to D:\OTAServer\build
[javac] D:\OTAServer\src\ProcessMessageRequest.java:78: cannot resolve
symbol
[javac] symbol : class util
[javac] location: package OTA
[javac] Class[] paramTypes =
{com.accor.OTA.util.FichierProp,com.accor.OTA.OTAPayload};
[javac]
^
[javac] D:\OTAServer\src\ProcessMessageRequest.java:78: cannot resolve
symbol
[javac] symbol : class OTA
[javac] location: package accor
[javac] Class[] paramTypes =
{com.accor.OTA.util.FichierProp,com.accor.OTA.OTAPayload};
[javac]
^
[javac] D:\OTAServer\src\ProcessMessageRequest.java:104: incompatible
types
[javac] found : java.lang.Object
[javac] required: java.lang.String
[javac] strTemp =
ClassCreate.getMethod("transformtoTC", new Class[] {}).invoke (objCr
eate,new Object[]{}) ;
[javac]
^
[javac] 3 errors
----- Original Message -----
From: "OLIVIER CAYRON" <[EMAIL PROTECTED]>
To: "'LAMY Olivier'" <[EMAIL PROTECTED]>
Sent: Thursday, April 11, 2002 4:13 PM
Subject: RE: Cr�ation dynamique de classe
Salut !
D�sol�, je n'ai pas bien compris. Tu veux cr�er dynamiquement une
instance d'une classe nomm�e puis appeler ses m�thodes, ou cr�er
une classe, la compiler et pouvoir jouer avec ?
Si c'est la premi�re option :
Voir les packages java.lang et java.lang.reflect et en particulier les
classes
Class, Method, Constructor.
En gros, "suffit" de faire un Class.forName( "leNomCompletDeTaClasse" ).
Dessus, faire un getConstructor( Type des param�tres ). L�, un
newInstance
bien plac� devrait suffire � cr�er une instance.
Pour executer une methode, il faut faire, sur un objet de type Class,
un getMethod avec les bons param�tres, puis un "invoke" et voil�.
Si c'est la deuxi�me option, bonne chance ... :o)
Olivier
> -----Message d'origine-----
> De : LAMY Olivier [ mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> ]
> Envoy� : jeudi 11 avril 2002 16:01
> � : [EMAIL PROTECTED]
> Objet : Cr�ation dynamique de classe
>
>
> Bonjour,
> Je souhaite cr�er dynamiquement des classes.
> En fait, j'ai une class g�n�rique avec des class h�ritant de celle-ci.
> Un traitement me permet de r�cup�rer le nom de class � cr�er
> puis ensuite
> j'ex�cute une ou plusieurs m�thodes de la class cr��e.
> De plus, le constructeur de ces class est toujours identique
> et prend en
> param�tre des objets.
> algo rapide
> 1.traitement pour r�cup nom de la class
> 2.cr�ation de la class en fonction du nom r�cup�r� et en
> fonction d'autres
> objets
> 3.ex�cution de m�thodes de la class cr��e
>
> Est-ce possible ou je m'�gare ??
> Olivier
>
>
>
>
>
> **************************************************************
> ********
> Ce message �lectronique et tous les fichiers joints ainsi que les
> informations contenues dans ce message (ci apr�s "le message"), sont
> confidentiels et destin�s exclusivement � l'usage de la
> personne � laquelle
> ils sont adress�s. Si vous avez re�u ce message par erreur,
> merci de le
> renvoyer � son �metteur et de le d�truire. Toute diffusion,
> publication,
> totale ou partielle ou divulgation sous quelque forme que ce soit non
> express�ment autoris�es de ce message, sont interdites.
>
> **************************************************************
> ********
> This e-mail, any attachments and the information contained
> (herein " the
> message") are confidential and intended solely for the use of the
> addressee(s) if you have received this message in error
> please send it back
> to the sender and delete it. Unauthorized publication, use,
> dissemination or
> disclosure, either whole or partial, of this message is strictly
> prohibited.
>
**********************************************************************
Ce message �lectronique et tous les fichiers joints ainsi que les
informations contenues dans ce message ( ci apr�s "le message" ), sont
confidentiels et destin�s exclusivement � l'usage de la personne � laquelle
ils sont adress�s. Si vous avez re�u ce message par erreur, merci de le
renvoyer � son �metteur et de le d�truire. Toute diffusion, publication,
totale ou partielle ou divulgation sous quelque forme que se soit non
express�ment autoris�es de ce message, sont interdites.
**********************************************************************
This e-mail, any attachments and the information contained (herein " the
message" ) are confidential and intended solely for the use of the
addressee(s) if you have received this message in error please send it back
to the sender and delete it. Unauthorized publication, use, dissemination or
disclosure, either whole or partial, of this message is strictly
prohibited.