黑马程序员技术交流社区

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

作者: 苏志伟    时间: 2011-10-9 23:00
标题: 反射问题!不是public修饰的方法反射不到!~为什么?
做了一个实现....验证了一下,不是public修饰的成员方法反射不到!
~private的还好理解一下,私有的不想了让看见也就罢!
但是为什么用default修饰的就不行呢~~~?
作者: 黄治文    时间: 2011-10-9 23:21
楼主,完全是可以的,你试试我这段代码
  1. package com.itcast.io.day2;

  2. import java.lang.reflect.Method;
  3. import java.util.HashSet;
  4. import java.util.Iterator;

  5. class ReflectDemo {
  6.         private void printStr() {
  7.                 System.out.println("test reflect");
  8.         }

  9.         public void printInt() {
  10.                 System.out.println(10);
  11.         }
  12. }

  13. public class Test {

  14.         public static void main(String[] args) throws Exception {
  15.                 Class cls = Class.forName("com.itcast.io.day2.ReflectDemo");
  16.                 Method method = cls.getDeclaredMethod("printStr");
  17.                 method.setAccessible(true);
  18.                 method.invoke(cls.newInstance());
  19.         }
  20. }
复制代码

作者: 黄治文    时间: 2011-10-9 23:22
输出为
test reflect

作者: 苏志伟    时间: 2011-10-10 00:10
哦!~用到的是暴力反射,!~~ok明白了。。。
作者: 王家俊    时间: 2011-10-10 00:55
类中的所以方法都可以使用反射得到,要访问private的方法就必须使用所谓的暴力访问,就是调用方法的setAccessble(tre)方法。
作者: 丁晓宇    时间: 2012-2-16 18:47
暴力!{:soso_e113:}
作者: guobin_lu    时间: 2013-3-30 18:47
暴力!!




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