comment faire pour convertir la Classe d'Instance de l'Objet
prendre un coup d'oeil à mon code....
Class<?> c = Class.forName("PerformanceInvokeService");
Method m = c.getDeclaredMethod("monthlyTestCal", new Class[] {
String.class, Date.class });
Object ret = m.invoke("PerformanceInvokeService", new Object[] {
"some string", new Date() });
System.out.println(ret);
j'exécute cette et sa levée d'une exception
java.lang.IllegalArgumentException: object is not an instance of declaring class
je pense, parce que je n'ai pas de créer une instance de c (aime...nouvelle PerformanceInvokeService())
et je ne sais pas comment le créer
quelqu'un de l'aide?
désolé pour mon anglais...
grâce
- Suivez ce lien. A quelques bons points sur la façon d'aller sur la fixant ourcraft.wordpress.com/2009/01/23/...
- J'ai édité les balises pour mieux catégoriser la question. Vous devez garder à l'esprit que chaque balise se dresse sur son propre; ils ne forment pas une phrase. (Il n'est pas judicieux de regrouper une question à propos de "instance" avec d'autres questions à propos de "instance", par exemple. Mais il est logique de regrouper une question à propos de Java avec d'autres questions au sujet de Java.)
Vous devez vous connecter pour publier un commentaire.
Si
PerformanceInvokeService
a un accessibles de constructeur par défaut, vous pouvez créer une nouvelle instance à l'aide de:Vous pouvez passer ensuite que l'invocation de la méthode:
Si il n'est pas accessible dans le constructeur par défaut, alors vous aurez à trouver un constructeur que vous pouvez utiliser à l'aide de la réflexion.
Class
a unnewInstance()
méthode que vous pouvez appeler pour créer une instance de la classe à l'aide de son constructeur par défaut. Ou, vous pouvez appelergetConstructor()
ougetConstructors()
de trouver un constructeur qui prend le bon genre d'arguments, et ensuite appelernewInstance()
sur leConstructor
objet, en passant la construction des arguments.Vous devez ajouter
Ce qui appelle le constructeur par défaut et créer un nouvel objet. Ensuite, vous pouvez l'utiliser comme premier argument en