用Java创建字段数组

时间:2014-10-29 02:49:50

标签: 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"

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 ;;",{在此令牌之后的预期

2 个答案:

答案 0 :(得分:2)

你几乎就在那里:一旦你得到了一个字段数组,就在每个字段上调用get,传递你希望得到属性的对象的实例(在这种情况下,那将是{{} 1}}):

t

Demo.

当然这不会打印对象的漂亮表示,因为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)

您收到错误,因为没有任何代码存在于方法内部。将其移至测试方法中。