通过反射给bean赋值

来源:互联网 发布:展示网站源码 编辑:程序博客网 时间:2024/05/18 03:08

Entity

package com.restful.reflect;public class Entity { private String name; private String age; public Entity() { } public String getName() {  return name; } public void setName(String name) {  this.name = name; } public String getAge() {  return age; } public void setAge(String age) {  this.age = age; }}

Ref

 package com.restful.reflect;import java.lang.reflect.Method;public class Ref { public static <T> T fillResponse(T object,String[] paramName,String[] paramVal) {          if (object == null) {              return null;          }          Class<T> clazz = (Class<T>) object.getClass();          for(int i =0 ; i< paramName.length ; i ++){          try {                   Method get_Method = clazz.getMethod("get" + getMethodName(paramName[i]));  //获取getMethod方法                   Method set_Method = clazz.getMethod("set" + getMethodName(paramName[i]), get_Method.getReturnType());//获得属性set方法                   set_Method.invoke(object, paramVal[i]);             } catch (Exception e) {               }          }        return object;      }      // 把一个字符串的第一个字母大写、效率是最高的、      private static String getMethodName(String fildeName) {          byte[] items = fildeName.getBytes();          items[0] = (byte) ((char) items[0] - 'a' + 'A');          return new String(items);      } }

Test

package com.restful.reflect;public class Test { public static void main(String[] args) {  Entity obj = Ref.fillResponse(new Entity(), new String[]{"name","age"}, new String[]{"songjian" ,"12"});  System.out.println(obj.getName()+":"+obj.getAge()); }}

0 0
原创粉丝点击