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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

做了一个实现....验证了一下,不是public修饰的成员方法反射不到!~private的还好理解一下,私有的不想了让看见也就罢!但是为什么用default修饰的就不行呢~~~?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

3 个回复

倒序浏览
私有有的也可以反射到,getDeclaredMethod方法
回复 使用道具 举报
default的和private的成员变量或者方法都可以用getDeclared的方法来获取。
回复 使用道具 举报
因为不是public的 所有需要用getDeclaredFields();来获取,然后要进行暴力反射 具体代码如下
  1. public class TestBean
  2. {
  3.     private String name = "abc";
  4. }
  5. public class PrivateTest
  6. {
  7.         public static void main( String[] args ) throws IllegalArgumentException, IllegalAccessException
  8.     {
  9.         TestBean tb = new TestBean();
  10.         Field[] f = TestBean.class.getDeclaredFields();
  11.         for(int i=0;i<f.length;i++){
  12.             f[i].setAccessible( true );//暴力反射
  13.             System.out.println(f[i].get( tb ));
  14.         }
  15.     }
  16. }
复制代码

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马