lijilin12 2014-08-22 22:54
浏览 287
已采纳

java 反射

在方法setFieldValue中 Object obj = field.get(target); 是取field属性的值
但是在当field八种基本类型的时候取出的就是具体的值了,如(0,false)
但在后面将obj赋给tatarget就是一个object对象了 在后面又取target的class对象 ,然后给其属性赋值,但是取得属性在object对象的class对象中是没有的
他是怎么附上去的。真的不理解,

求指导!!!!

  • 写回答

2条回答 默认 最新

  • _hug 2014-08-24 15:19
    关注

    最好是把代码附上来比较好。
    总之呢,你要反编译的类被jvm加载之后呢,
    然后
    Class.forName("xxx");就创建了一个目标对象,或者说是创建了一个Class对象的实例
    xx.isInstance(xxxx); 这个就创建了目标对象实例
    xx.getFields();等方法可以获取目标类的具体信息

    然后在用来完成你需要的操作,我猜你是想问 我都取到具体的的类型值了应该是int、long、boolean等类型的啊 怎么还是Objcet的?
    ----------------背景介绍完毕---------
    老生常谈,因为Object是那八种类型的父类(父类子类的特性),java在创建这个方法的时候肯定要用一种 兼容所有类型的类型来巴拉巴拉,不然就要几种类型写几种方法了
    (/* 希望我猜的没错,我太无聊了 */)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记