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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张 涛 于 2012-9-23 07:20 编辑

首先介绍一下,一个FlectionPoint类,有x和y属性。
下面的代码是在另一个类中,这个类中需要使用内省访问Point类的属性。
张老师讲的第一种方法,思路是:"x"-->"X"-->"getX"-->MethodGetX(),比较麻烦,老师没做,这里自己写了下,大家看是这个意思吗?

代码如下:
  1. ReflectionPoint rp = new ReflectionPoint(3, 5);
  2.                 //例子中,给了属性名
  3.                 String propName = "x";
  4.                 //第一种方案:"x"-->"X"-->"getX"-->MethodGetX()
  5.                 char[] arrayC = propName.toCharArray();
  6.                 //看变量的第二个字母是否大写,大写的话,变量名字就不用管;不是的话,把第一个字母变大写。
  7.                 if(arrayC.length > 1 && arrayC[1] >= 'A' && arrayC[1] <= 'Z'){
  8.                         
  9.                 }else{
  10.                         arrayC[0] = (char)(arrayC[0] - 0x20);
  11.                 }
  12.                 propName = new String(arrayC);
  13.                 String str = "get" + propName;
  14.                 Class clazz = rp.getClass();
  15.                 Method mth = clazz.getMethod(str, null);
  16.                 Object retVal = mth.invoke(rp, null);
  17.                 System.out.println(retVal);
复制代码
结果是3

评分

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

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马