zoukankan      html  css  js  c++  java
  • 使用java反射机制获取javabean中的私有属性

    public   class   TestReflect   { 
               public   static   void   main(String[]   args){ 
                          APerson   a=new   APerson(); 
                          Field   fields[]   =   a.getClass().getDeclaredFields(); 
                          String[]   name   =   new   String[fields.length]; 
                          Object[]   value   =   new   Object[fields.length]; 
                                
                          try{
                                    Field.setAccessible(fields,   true);
                                    for   (int   i   =   0;   i   <   name.length;   i++)   { 
                                           name[i]   =   fields[i].getName(); 
                                           System.out.println(name[i]   +   "-> "); 
                                           value[i]   =   fields[i].get(a); 
                                           System.out.println(value[i]); 
                                    } 
                          } 
                          catch(Exception   e){ 
                                   e.printStackTrace(); 
                          } 
              }
    }

    class   APerson{ 
                    private  String   name; 
                    private  String   sex; 
                    private   int   age; 

                    APerson(){ 
                           name= "John "; 
                           sex= "男 "; 
                           age=45; 
                    }

                    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   getSex()   {
                                    return   sex;
                    }
                    public   void   setSex(String   sex)   {
                                    this.sex   =   sex;
                    }
    }

    以上代码中,Field.setAccessible(fields,   true); 是最为关键的一点。

    在使用java反射机制获取 JavaBean 的属性值时,如果该属性被声明为private 的,需要将setAccessible设置为true. 默认的值为false.

  • 相关阅读:
    蘑菇街2016校园招聘第一个编程题
    杭州天丽笔试题
    2016校园招聘 cvte一面被问到的面试题目
    C#中ArrayList,List,数组的区别
    大白话讲解.NET中挂起线程的Thread.Sleep()方法
    OutLook邮箱获取授权码
    EPIC全速下载游戏加速教程
    远程服务器提示:身份验证错误 要求的函数不受支持解决办法汇总-- Windows远程桌面连接
    华硕主板重装系统以后BIOS设置的启动项就没有了,开机就进BIOS,不进系统
    Windows10访问共享文件夹:此用户无法登录,因为该账户当前已被禁用此用户无法登录,因为该账户当前已被禁用或者直接找不到相应的计算机解决办法
  • 原文地址:https://www.cnblogs.com/cookray/p/2085337.html
Copyright © 2011-2022 走看看