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