博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java反射得到属性的值和设置属性的值(转)
阅读量:6305 次
发布时间:2019-06-22

本文共 2524 字,大约阅读时间需要 8 分钟。

package com.whbs.bean; public class UserBean {    private Integer id;    private int age;    private String name;    private String address;       public UserBean(){       System.out.println("实例化");    }       public Integer getId() {       return id;    }    public void setId(Integer id) {       this.id = id;    }    public int getAge() {       return age;    }    public void setAge(int age) {       this.age = age;    }    public String getName() {       return name;    }    public void setName(String name) {       this.name = name;    }    public String getAddress() {       return address;    }    public void setAddress(String address) {       this.address = address;    }         } 2 > 反射测试 package com.whbs.test; import java.lang.reflect.Field;import java.lang.reflect.Method; import com.whbs.bean.UserBean; public class Test1 {     public static void main(String[] args) throws Exception {              /*        * 实列化类 方法1        */       //String classPath = "com.whbs.bean.UserBean";       //Class cla = Test1.class.getClassLoader().loadClass(classPath);       //Object ob = cla.newInstance();             /*        * 实列化类 方法2        */       UserBean bean = new UserBean();       bean.setId(100);       bean.setAddress("武汉");             //得到类对象       Class userCla = (Class) bean.getClass();             /*        * 得到类中的所有属性集合        */       Field[] fs = userCla.getDeclaredFields();       for(int i = 0 ; i < fs.length; i++){           Field f = fs[i];           f.setAccessible(true); //设置些属性是可以访问的           Object val = f.get(bean);//得到此属性的值                    System.out.println("name:"+f.getName()+"\t value = "+val);                     String type = f.getType().toString();//得到此属性的类型           if (type.endsWith("String")) {              System.out.println(f.getType()+"\t是String");              f.set(bean,"12") ;        //给属性设值           }else if(type.endsWith("int") || type.endsWith("Integer")){              System.out.println(f.getType()+"\t是int");              f.set(bean,12) ;       //给属性设值           }else{              System.out.println(f.getType()+"\t");           }                 }                   /*        * 得到类中的方法        */       Method[] methods = userCla.getMethods();       for(int i = 0; i < methods.length; i++){           Method method = methods[i];           if(method.getName().startsWith("get")){              System.out.print("methodName:"+method.getName()+"\t");              System.out.println("value:"+method.invoke(bean));//得到get 方法的值           }       }    } }

 

转载地址:http://yqnxa.baihongyu.com/

你可能感兴趣的文章
mysqldump --single-transaction 和--lock-tables参数详解
查看>>
android 数据库_sql语句总结
查看>>
python购物车
查看>>
解决python2和python3的pip冲突
查看>>
面试/编程
查看>>
linux每日命令(16):head命令
查看>>
公司内部分享【富有成效的每日站会】总结
查看>>
打造一个上传图片到图床利器的插件(Mac版 开源)
查看>>
iOS横竖屏
查看>>
thinkphp判断更新是否成功
查看>>
Do While ... Loop 与 Do Until ... Loop 的区别
查看>>
【Linux】查询某个字符串出现次数
查看>>
高效使用jquery之一:请使用'On'函数
查看>>
冲刺第一周第三天
查看>>
ERP环境检测工具设计与实现 Environment Detection
查看>>
不要在构造中做太多事情,不然有时候会出现有意思的代码~
查看>>
IIS 发布网站遇到的问题
查看>>
NuGet学习笔记(2)——使用图形化界面打包自己的类库
查看>>
xcode中没有autoSizing的设置
查看>>
字符编码
查看>>