类类型为的Java反射getDeclaredMethod()
我试图理解Java reflecton,在使用非整数setter方法时遇到了困难 例如,如何解决下面的“getDeclaredMethod()”调用类类型为的Java反射getDeclaredMethod(),java,reflection,Java,Reflection,我试图理解Java reflecton,在使用非整数setter方法时遇到了困难 例如,如何解决下面的“getDeclaredMethod()”调用 import java.lang.reflect.*; class Target { String value; public Target() { this.value = new String("."); } public void setValue(String value) { this.value = valu
import java.lang.reflect.*;
class Target {
String value;
public Target() { this.value = new String("."); }
public void setValue(String value) { this.value = value; }
public String getValue() { return this.value; }
}
class ReflectionTest {
public static void main(String args[]) {
try {
Class myTarget = Class.forName("Target");
Method myMethod;
myMethod = myTarget.getDeclaredMethod("getValue"); // Works!
System.out.println("Method Name: " + myMethod.toString());
Class params[] = new Class[1];
//params[0] = String.TYPE; // ?? What is the appropriate Class TYPE?
myMethod = myTarget.getDeclaredMethod("setValue", params); // ? Help ?
System.out.println("Method Name: " + myMethod.toString());
} catch (Exception e) {
System.out.println("ERROR");
}
}
}
在
String
上使用class
将返回与String
类相关联的class
。(哎呀,我不是想对评论投赞成票!)我只是想补充一点,那天我还没有意识到,所以这并不明显。我有一个问题要问你,在什么情况下,我将尝试知道类和变量中有哪些方法?为什么我要试着知道?我正在探索使用此方法getDeclaredMethod()、getDeclaredFields()等的原因。。。你能给我提一个问题吗?在什么情况下,我会尝试知道类和变量中有哪些方法?为什么我要试着知道?我正在探索使用此方法getDeclaredMethod()、getDeclaredFields()等的原因。。。您能否建议使用反射的一个(随机)原因是,如果您想构建Json序列化/反序列化库。著名的Google Gson库大量使用反射来完成他的任务。这种用法的例子可以永远持续下去。例如,您可以构建一个网络协议,用于序列化各种Java对象属性,并将其发送到另一个应用程序或基于另一种语言的服务器,从而节省了大量时间,因为不必为所有需要exchange的类实现序列化方法。
params[0] = String.class;