我正在尝试实现一个程序,它将从某个类的字段中创建一个数组 然后访问每个字段
我有以下课程:
public class Example {
public int[] a = {1,2,3};
public int[] b = {1,1,1};
public int[] c = {2,2,2};
}
在另一个类中,我想访问所有这些字段并将它们放入数组" testArray"
import java.lang.reflect.Field;
public class Test {
Example t = new Example();
Field[] testArray = t.getClass().getFields();
for (Field elem: testArray) {
// access the fields
}
}
如何以这种方式访问字段?
注意:对于某些reasone,这给了我一个错误令牌上的语法错误&#34 ;;",{在此令牌之后的预期
答案 0 :(得分:2)
你几乎就在那里:一旦你得到了一个字段数组,就在每个字段上调用get
,传递你希望得到属性的对象的实例(在这种情况下,那将是{{} 1}}):
t
当然这不会打印对象的漂亮表示,因为Object[] fieldsOfT = new Object[testArray.length];
int i = 0;
for (Field f : testArray) {
fieldsOfT[i++] = f.get(t);
}
for (Object v : fieldsOfT) {
System.out.println(v);
}
数组不提供有意义的int[]
,但是你有一个值作为对象,所以你可以强制转换它,根据需要打印值。
答案 1 :(得分:1)
您收到错误,因为没有任何代码存在于方法内部。将其移至测试方法中。