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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王宝龙 中级黑马   /  2012-10-12 19:30  /  1378 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王宝龙 于 2012-10-15 14:06 编辑

首先定义了一个Point类,其中这个类中有一个私有的方法getY(),利用反射
getMethod(“getY”,null)并不能取得这个方法,那有没有类似于setAccessible(),这样的
“暴力反射”是针对方法的。
  1. class Point
  2. {
  3.         private int x ;
  4.         private int y ;
  5.         
  6.         public Point(int x,int y)
  7.         {
  8.                 this.x = x;
  9.                 this.y = y;
  10.         }
  11.         
  12.         public  int getX()
  13.         {
  14.                 return x;
  15.         }
  16.         
  17.         private int getY()
  18.         {
  19.                 return y;
  20.         }
  21. }
  22. public class Demo
  23. {
  24. public static void main(String [] args) throws Exception
  25. {
  26.   Point rp = new Point(2,7);
  27.   Method method = rp.getClass().getMethod("getY",null);
  28.   System.out.println(method);
  29. }
  30. }
复制代码

1 个回复

倒序浏览
  1. import java.lang.reflect.Method;

  2. class Point {
  3.         private int x;
  4.         private int y;

  5.         public Point(int i, int j) {
  6.                 // TODO Auto-generated constructor stub
  7.         }

  8.         public void setX(int x) {
  9.                 this.x = x;
  10.         }
  11. //这里要单独set,如果两个变量放在一起set,那getY()方法不是没用了,那反射时会出现NoSuchMothedException
  12.         public void setY(int y) {
  13.                 this.y = y;
  14.         }

  15.         public int getX() {
  16.                 return x;
  17.         }

  18.         public int getY() {
  19.                 return y;
  20.         }
  21. }

  22. public class PDemo {

  23.         /**
  24.          * @param args
  25.          */
  26.         public static void main(String[] args) throws Exception {
  27.                 Point rp = new Point(1, 2);

  28.                 Method method = Point.class.getMethod("getY", null);

  29.                 System.out.println(method.getName());

  30.         }

  31. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马