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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 啷个里个郞 于 2012-5-10 22:22 编辑

public class Staticimport {
       
        public static void main(String[] args) {
                 ReflectPoint rp = new ReflectPoint(6);
                 
                 
                Field fd = rp.getClass().getField("x");
                 
                 System.out.println(fd);为什么输出的不是6?怎么回事?
                 
         }


}

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
谁还没睡?求帮助
回复 使用道具 举报
       Field fd = rp.getClass().getField("x");   
//此处得到的是ReflectPoint 字节码中名字为X的那个变量,并不表示变量的值        
        System.out.println(fd);//此处输出的就是是那个名字为X的变量
如果要得到X变量的值这样就可以:
System.out.println(fd.get(rp));//表示得到X变量在rp这个对象上的值

点评

谢谢  发表于 2012-5-11 22:51

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
Field fd = rp.getClass().getField("x") //这里获得的是rp类字节码的指定getField("x") 参数对应的变量名,包括变量名类似 修饰符。-->public int ReflectPoint.x

int i = (Integer)fd.get(rp);  //要获得指定参数对应变量名的值,要使用get指定参数在哪个对象上获得x的值

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马