【问题标题】:Java Reflection API - Getting the value of a String[] fieldJava Reflection API - 获取 String[] 字段的值
【发布时间】:2010-10-07 04:13:00
【问题描述】:

我想知道是否可以使用 java 反射 API 从类中获取未知大小的 String[] 并将其存储在其他地方?

谢谢。

【问题讨论】:

  • 是的,你可以用 String[] 来做,就像用任何其他类型一样。

标签: java arrays string reflection


【解决方案1】:
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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 2017-03-14
    相关资源
    最近更新 更多