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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 画饼 中级黑马   /  2013-6-13 18:28  /  1523 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位大神好,下面这个代码是我写的那个对javabean进行处理的方法!
只要你告诉我,你要处理的对象跟变量还有值,就可以处理,我就可以帮你设置值,或者返回值,
请教大神,用我这个方法,加入我要处理的变量是name,但是我没有在原类里面弄set跟get方法,下面这个代码能处理么??还有内省,有劳大神再简单的给我说说

        public static Object Getbeanzhi(Object Classname,String FieldName){
                PropertyDescriptor Pd;
                Object Obj =null;
                        try {
                                Pd = new PropertyDescriptor(FieldName, Classname.getClass());
                                 Method method =Pd.getReadMethod();
                        Obj = method.invoke(Classname);
                       
                        } catch (Exception e) {
                                System.out.println("对象名或者属性名出错");
                        }
                return Obj;
        }





        public static void SetBeanzhi(Object Clazz,String FieldName,Object zhi){
                PropertyDescriptor Pd;
                try {
                                Pd = new PropertyDescriptor(FieldName, Clazz.getClass());
                                Method method =Pd.getWriteMethod();
                                method.invoke(Clazz, zhi);
                        } catch (Exception e) {
                                // TODO Auto-generated catch block
                                System.out.println("对象名或者属性名出错");
                        }
               
        

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 淡定

查看全部评分

2 个回复

倒序浏览
IntroSpector 内省

IntrosPector 是用来操作JavaBean类的;
所谓的javabean类其实是一个特殊的java类含有get和set方法的类。
三种方法:
1、使用PropertyDescriptor 属性描述符
PropertyDescriptor pd = newPropertyDescriptor(String propertyName,Class BeanClass);
getX()
Method getMethod =pd.getReadMethod();
set(类型  对象);
Method setMethod =pd.getWriteMethod();
2、使用Introspector 内省
BeanInfo beanInfo =Introspector.getBeanInfo(字节码比如:ReflectPoint.class);
再得到所有的属性描述符
PropertyDescriptor [] pds =beanInfo.getPropertyDescriptors();
然后可以进行迭代获得每个字段的值(使用get方法或使用set方法修改)
3、直接使用BeanUtils类(静态方法)
BeanUtils.setProperty(,,);
BeanUtils.getProperty();

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼主.如果问题解决的话请及时将问题改成已解决哦~{:soso_e100:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马