在Java中创建字段数组
我正在尝试实现一个程序,该程序将从某个类的字段中创建一个数组 然后访问每个字段 我有以下课程:在Java中创建字段数组,java,arrays,reflection,Java,Arrays,Reflection,我正在尝试实现一个程序,该程序将从某个类的字段中创建一个数组 然后访问每个字段 我有以下课程: public class Example { public int[] a = {1,2,3}; public int[] b = {1,1,1}; public int[] c = {2,2,2}; } 在另一个类中,我希望访问所有这些字段,并将它们放入数组“testArray”中 如何以这种方式访问字段 注意:出于某种原因,这给了我一个关于标记“;”的语法错误,{在这个标记之后应该
public class Example {
public int[] a = {1,2,3};
public int[] b = {1,1,1};
public int[] c = {2,2,2};
}
在另一个类中,我希望访问所有这些字段,并将它们放入数组“testArray”中
如何以这种方式访问字段
注意:出于某种原因,这给了我一个关于标记“;”的语法错误,{在这个标记之后应该是这样的您几乎就到了:一旦您获得了一个字段数组,就在每个字段上调用
get
,传递您希望从中获取属性的对象的实例(在本例中,这将是t
):
当然,这不会打印对象的漂亮表示,因为
int[]
数组不提供有意义的字符串,但您将值作为对象放在那里,因此您可以强制转换它,并根据需要打印值。您会收到错误,因为没有任何代码存在于方法中。请将其移到测试方法中。有什么区别吗?两种方法都不起作用吗?@DasbLinkedLight感谢您的帮助小补丁,但它仍然给我同样的错误是的,显然他们没有,一定错过了备忘录。。。
import java.lang.reflect.Field;
public class Test {
Example t = new Example();
Field[] testArray = t.getClass().getFields();
for (Field elem: testArray) {
// access the fields
}
}
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);
}