【发布时间】:2013-06-25 19:05:53
【问题描述】:
我有一个包含几个不同对象的类。
我可以使用 getDeclaredFields 来获取所有对象的名称列表,
但我想在这些对象中调用一个方法。
我该怎么做?
ClassA a = new ClassA();
Class cls = c.getClass();
Field[] fields = cls.getDeclaredFields();
for(int i = 0; i< fields.length;i++) {
System.out.println("Field = " + fields[i].toString());
System.out.prontln(fields[i].method()) // how can I call the method from object fields[i]
}
更多信息:我使用反射的原因是我想编写一个可用于测试所有其他类的对象是否正确存在的测试类。
testclass(class a),获取类a中的所有对象名称,并使用object.exists()方法验证该对象是否存在。
这是我的代码:我有一些对话框类,每个对话框类都有一些 menuitem 类、复选框类、文本字段类,我想编写一个可用于验证所有复选框、文本字段是否存在的类(使用 checkbox.exist (), textfield.exist() ...) 在给定的对话框中。
ToolsMenu c = new ToolsMenu();
Class cls = c.getClass();
Field[] fields = cls.getDeclaredFields();
for(int i = 0; i< fields.length;i++) {
System.out.println("Field = " + fields[i].toString());
println( fields[i].getDeclaringClass().exists()
我可以使用 getdeclaringclass 来获取 field[i] 类,但是如何调用在 checkboxes、textfields 类中定义的方法 exists()。
【问题讨论】:
-
那你感兴趣的字段类型是什么,方法是什么?
-
我建议你谷歌“java反射api”。有很多关于如何做到这一点的教程。但是我的问题是:你为什么首先使用反射?
-
您是在尝试调用任何方法还是您知道方法签名?
-
我使用反射的原因是我想写一个测试类,可以用来测试所有其他类的对象是否正确存在。 testclass(class a),获取类a中的所有对象名称,并使用object.exists()方法验证该对象是否存在。
标签: java object reflection methods