首先,拿到一个Class,可以通过如下方式来判断是否是一个数组类型:
Class<?> c = f.getType();
if(c.isArray()){
...
}
可以通过:
c.getComponentType()
来获取到数组元素的类型。
然后,可以通过下面的方式来创建一个数组:
Object o = Array.newInstance(c, n);
添加数组元素到数组中:
val = ...//构建数组元素
Array.set(o, i, val);
下面的oo就是最后的结果了:
Object[] oo = (Object[])o;
参考:
http://docs.oracle.com/javase/tutorial/reflect/special/arrayComponents.html
http://docs.oracle.com/javase/tutorial/reflect/special/arrayInstance.html