黑马程序员技术交流社区

标题: 反射问题!不是public修饰的方法反射不到!~为什么? [打印本页]

作者: 小蚊子    时间: 2013-12-23 21:21
标题: 反射问题!不是public修饰的方法反射不到!~为什么?
做了一个实现....验证了一下,不是public修饰的成员方法反射不到!~private的还好理解一下,私有的不想了让看见也就罢!但是为什么用default修饰的就不行呢~~~?
作者: 776699    时间: 2013-12-23 23:30
私有有的也可以反射到,getDeclaredMethod方法
作者: 落木萧萧    时间: 2013-12-24 11:32
default的和private的成员变量或者方法都可以用getDeclared的方法来获取。
作者: 符乃夫    时间: 2013-12-24 20:18
因为不是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. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2