A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘德坤 中级黑马   /  2015-10-22 11:43  /  829 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;

public class Test24 {
//存在一个javabean,设置string,Boolean,double,integer的默认初值为www.itheima.com,true,0.01D,100
        public static void main(String[] args)throws Exception {
                // TODO Auto-generated method stub

                Class<?> clazz = Class.forName("com.itheima.testBean");
                Object bean = clazz.newInstance();
                BeanInfo beanInfo = Introspector.getBeanInfo(clazz);
                PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
                for(PropertyDescriptor pd : propertyDescriptors ){
                        Object name = pd.getName();
                        Object type = pd.getPropertyType();
                        Method getMethod = pd.getReadMethod();
                        Method setMethod = pd.getWriteMethod();
                        if(!"class".equals(name)){
                                if(setMethod!=null){
                                        if(type==Boolean.class||type==boolean.class){
                                                setMethod.invoke(bean, true);
                                        }
                                        if(type==String.class){
                                                setMethod.invoke(bean, "www.itheima.com");
                                        }
                                        if(type==int.class||type==Integer.class){
                                                setMethod.invoke(bean, 100);
                                        }
                                        if(type==Double.class||type==double.class){
                                                setMethod.invoke(bean, 0.01D);
                                        }
                                }
                                if(getMethod!=null){
                                        System.out.println(type+" "+name+"="+getMethod.invoke(bean, null));
                                }
                        }
                }
                                                               
        }

}
class testBean{
        private boolean b;
        private String str;
        private Integer i;
        private double d;
        public boolean isB() {
                return b;
        }
        public void setB(boolean b) {
                this.b = b;
        }
        public String getStr() {
                return str;
        }
        public void setStr(String str) {
                this.str = str;
        }
        public Integer getI() {
                return i;
        }
        public void setI(Integer i) {
                this.i = i;
        }
        public double getD() {
                return d;
        }
        public void setD(double d) {
                this.d = d;
        }
       
       
}

1 个回复

倒序浏览
乱乱的,虽然看不懂但是感觉好厉害
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马