本帖最后由 张 涛 于 2012-9-23 07:20 编辑
首先介绍一下,一个FlectionPoint类,有x和y属性。
下面的代码是在另一个类中,这个类中需要使用内省访问Point类的属性。
张老师讲的第一种方法,思路是:"x"-->"X"-->"getX"-->MethodGetX(),比较麻烦,老师没做,这里自己写了下,大家看是这个意思吗?
代码如下:- ReflectionPoint rp = new ReflectionPoint(3, 5);
- //例子中,给了属性名
- String propName = "x";
- //第一种方案:"x"-->"X"-->"getX"-->MethodGetX()
- char[] arrayC = propName.toCharArray();
- //看变量的第二个字母是否大写,大写的话,变量名字就不用管;不是的话,把第一个字母变大写。
- if(arrayC.length > 1 && arrayC[1] >= 'A' && arrayC[1] <= 'Z'){
-
- }else{
- arrayC[0] = (char)(arrayC[0] - 0x20);
- }
- propName = new String(arrayC);
- String str = "get" + propName;
- Class clazz = rp.getClass();
- Method mth = clazz.getMethod(str, null);
- Object retVal = mth.invoke(rp, null);
- System.out.println(retVal);
复制代码 结果是3 |