【发布时间】:2010-10-07 04:13:00
【问题描述】:
我想知道是否可以使用 java 反射 API 从类中获取未知大小的 String[] 并将其存储在其他地方?
谢谢。
【问题讨论】:
-
是的,你可以用 String[] 来做,就像用任何其他类型一样。
标签: java arrays string reflection
我想知道是否可以使用 java 反射 API 从类中获取未知大小的 String[] 并将其存储在其他地方?
谢谢。
【问题讨论】:
标签: java arrays string reflection
class Foo {
private String[] bar;
public Foo(String[] bar) {
this.bar = bar;
}
public static void main(String[] args) throws Exception {
Foo foo = new Foo(new String[] {"a", "b", "c"});
Field barField = Foo.class.getDeclaredField("bar");
String[] bar = (String[]) barField.get(foo);
System.out.println(Arrays.toString(bar)); // [a, b, c]
}
}
除了getDeclaredField(String),还有getField(String) 和getFields(),它们只返回公共字段以及类声明的所有字段的getDeclaredFields()。
【讨论】: