比如有个字符串数组:
String[] str = new String[]{"a","b","c"};
而现在我有一个变量:
String op = "str";
我该怎么做能够用变量op 来实例化上边的字符串数组呢?
最直接的方式是反射,但不推荐反射
map是个好东西,可以实现此需求
把需求界定清楚,即需要如此处理的数据都列出来,再如下实现
Map<String,String[]> map = new HashMap<String,String[]>();
map.put("strA", new String[]{"a","str","c"});
map.put("strB", new String[]{"d","e","f"});
String op = "strB";
String result = map.get(op)[0]; // "d"
str[1]=op.toString();
java中没有eval之类的关键字哦
但如果这个是一个对象的字段名的话
则可以通过反射来获取其内容
反射有较大的性能损耗,一般不建议用在运行阶段反射,大多开源框架是在初始化的时候通过反射来实例化。