• 反射获取对象的属性值


    1 > bean 对象

    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://blog.csdn.net/xiaopeng__/article/details/6950205

  • 相关阅读:
    小程序左滑删除之<movable-area/>实现
    小程序省市区县分割
    小程序自定义底部按钮适配Iphone X
    小程序处理图片加载失败的问题
    Notepad++ 使用技巧
    IDEA 在打包项目时遇到的ERROR
    Markdown学习
    Ubuntu操作系统(文件传输)
    数据 恢复----判断Raid盘序及校验方向
    数据恢复----重组raid5解析
  • 原文地址:https://www.cnblogs.com/imsoft/p/5888418.html
Copyright © 2020-2023  润新知