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