如何动态调用array-list?

时间:2016-03-06 07:50:09

标签: java android

如何通过简单地传递名称从IPSUM.java类调用Array-name到 updateArticleView 方法? 例如。在突出显示的行中,我希望动态地实现此article.setText(Ipsum.LateralPull[0]);

updateArticleView方法

enter image description here

IPSUM.java

enter image description here

1 个答案:

答案 0 :(得分:1)

一种非常简单的方法是使用HashMap<String, String[]>,您可以将每个数组放在地图上,并将其当前字段名称作为其键:

map.put("LateralPull", new String[]{"LateralPaull"});

所以你可以简单地打电话:

map.get(name);

但是如果你不想出于任何原因使用HashMap,你可以使用java反射。以下是示例代码:

public class Main {

public static void main(String[] args) {

    try {
        Test test = new Test();
        Field field = Test.class.getDeclaredField("list");
        String[] list = (String[]) field.get(test);
        System.out.println(list[0]);
    } catch (NoSuchFieldException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
  HashMap<String, String[]> map = new HashMap<>();
  map.put("hasahn", new String[]{"df"});



}

private static class Test{
    String[] list = new String[]{"Item 1"};
}
}

输出为:第1项。