• Java反射得到属性的值和设置属性的值(转)


    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()+"	 value = "+val);
              
               String type = f.getType().toString();//得到此属性的类型
               if (type.endsWith("String")) {
                  System.out.println(f.getType()+"	是String");
                  f.set(bean,"12") ;        //给属性设值
               }else if(type.endsWith("int") || type.endsWith("Integer")){
                  System.out.println(f.getType()+"	是int");
                  f.set(bean,12) ;       //给属性设值
               }else{
                  System.out.println(f.getType()+"	");
               }
              
           }
          
          
           /*
            * 得到类中的方法
            */
           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()+"	");
                  System.out.println("value:"+method.invoke(bean));//得到get 方法的值
               }
           }
        }
     
    }
  • 相关阅读:
    Element学习
    top level element is not completed
    IntelliJ IDEA 使用心得与常用快捷键
    MVC下的DAO接口类和SERVICE接口类区别?
    Emmet初探2
    Servlet和Android网络交互基础(3)
    A-Frame WebVR开发新手教程
    重温java中的String,StringBuffer,StringBuilder类
    Android 常见面试题
    <html>
  • 原文地址:https://www.cnblogs.com/GarfieldTom/p/5100917.html
Copyright © 2020-2023  润新知