类类型为的Java反射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

我试图理解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 = 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;