Java 获取指定给字段的对象类型

Java 获取指定给字段的对象类型,java,reflection,Java,Reflection,我正在通过反射检查“ReflectMe”课程。 使用getDeclaredFields方法,我得到了“str”字段 现在我需要得到类“Target”,该类将静态方法分配给该字段 可能吗 代码: } 换句话说,我需要获取“Target”类。如果您希望从ReflectMevia的类定义中获取Target类。在这个领域,我认为你不能通过反射API做到这一点;您可以获取类定义和实例变量的值,但不能自省表达式本身。使用class.forName()而不是main的前三行。因此,无法获取它?绝对不能。唯一的

我正在通过反射检查“ReflectMe”课程。
使用getDeclaredFields方法,我得到了“str”字段

现在我需要得到类“Target”,该类将静态方法分配给该字段

可能吗

代码:

}


换句话说,我需要获取“Target”类。

如果您希望从
ReflectMe
via的类定义中获取
Target
类。在这个领域,我认为你不能通过反射API做到这一点;您可以获取类定义和实例变量的值,但不能自省表达式本身。

使用
class.forName()
而不是
main
的前三行。因此,无法获取它?绝对不能。唯一的选择是检查源代码本身。@JustinKSU,我只有.class文件而不是.java源文件。除了反编译它,我认为你没有办法通过编程来确定这一点。有一个工具调用JAD。我不知道它是否有API。祝你好运
package myproj.reflect;
public class Target {
    public static final String theString = "abcd";
}

package myproj.reflect;
public class ReflectMe {
    private String str = Target.theString;
}


public static void main(String[] args) {
    ClassLoader loader = ClassLoader.getSystemClassLoader();                      
     String theclass = "myproj.reflect.ReflectMe";                   
    Class myClass = loader.loadClass(theclass);
    Field[] fields = myClass.getDeclaredFields();
}