我想在编译后读取类的参数。我只需要这些名字。
例如:
public class X {
public String y;
...
}
我想将代码编译为类文件。然后让另一个java项目读取本例X
中的类的名称以及本例y
中所有类的参数。
我能做到吗? 如果可能,参数必须公开吗?
感谢。
修改
我尝试使用JSystem - java中的自动化框架。 为此,我是否需要读取类文件并读取所有类名和那些参数?我希望它是可以理解的。
对于了解JSystem的人来说,我试图制作JRunner而不是web gui(春天)。
答案 0 :(得分:2)
您想要使用java反射。以下代码将为您提供包中的所有类:
Reflections reflections = new Reflections("my.project.prefix");
Set<Class<? extends Object>> allClasses = reflections.getSubTypesOf(Object.class);
然后,要获取类的属性,您可以执行以下操作:
for (Field f : getClass().getDeclaredFields()) {
System.out.println("Field: " + f);
}