现有str记录参数名称,map保存数据的,如下:String str="int a,String[] hosinfo,int[] num, ......";
Map map=new HashMap();
map.put("a","23");
map.put("hosinfo[0]", "aaa");
map.put("hosinfo[1]", "bbb");
map.put("num[0]","11");
........
........请问如下动态赋值给str定义的参数,就是最后得到
a=23
hosinfo[0]=aaa .....
.....

解决方案 »

  1.   

    不明白楼主的意思, 动态赋值给str
      String str="int a,String[] hosinfo,int[] num, ......";
      你是这样定义的str, 已经写死了,你是想定义字符串数组吗?
       请楼主把意思写明白点
      

  2.   

    再解释一下,就是我现在只有参数名称, 放在str里, 例如有参数a,String[] hosinfo, 定义成str="int a,String[] hosinfo, ......";(这里是自己定义的)
        参数的值就在MAP里定义,  最后我想组装得到定义的参数,就是str里定义的参数返回出来,可以放在一个list里不知道这样解释大家明白吗
      

  3.   

    最后得到的参数放在一个LIST里可以吗
      

  4.   

    可除了数组类型,还有别的类型吗?你再弄一个Map<String,List<String>> map,在参数里,那肯定受不了
      

  5.   

    差点给LZ绕进去,3楼说的对呀,这不单纯是反射能解决的了,动态编译、动态加载类,但现在你提出用一个List存放,那只要关心数据类型与值就行了,还要关心变量名吗?只要能把"int a,String[] hosinfo,int[] num, ......"中的变量名与你后面Map提供的KEY对应上取值,然后根据字符串中解析出的类型定义,比如“int”、“String[]”,“int[]”、“String”,按照解析出的字符串来判断并将Map中的Value转换为对应的类型,变量名随便,是不好再按照你提供的变量名去命名了,只能是用一个固定的变量名来创建做为中转,把值赋好后就放List里,不然这个变量放哪呢?这个类或方法根本就不存在,要这样开始创建变量。