反思 - 从类中获取变量

时间:2014-01-01 00:29:45

标签: java class reflection get

AExampleTestClass.java仅包含public String setence = "false";

在我正在运行的课程中有几种方法:

getPath(name) - 获取给定文件名的路径

getVariableNames(File) - 获取给定文件中的变量 和

change(classname,var,to) - 用于替换String“to”给出的类名中的变量。

现在我运行getPath("AExampleTestClass")

它返回正确的路径

C:\Users\..\test\AExampleTestClass.java

但是当我跑步时

getPath("AExampleTestClass").getClass()

它返回

class java.lang.String

所以当我使用getVariables时...它返回java.lang.String中不在AExampleTestClass.java中的变量

我可以用什么来从未知名称的类中访问未知名称的变量(类+变量名是字符串)?

2 个答案:

答案 0 :(得分:0)

getClass()返回您正在调用它的对象的类 当您在String上调用它时,它始终会返回String.class

您想要ClassLoader.getSystemClassLoader().loadClass(...)

答案 1 :(得分:0)

getPath返回String时,该方法会为该字符串调用getClass方法。

您的代码与执行此操作相同:

String path = getPath("AExampleTestClass");  // returns a String with the path
path.getClass();   // returns String.class as expected