69.反射-引出反射和什么是反射

引出反射

问题1:

1.对象有编译类型和运行类型
Object obj = new java.util.Date();
编译类型:Object
运行类型:java.util.Date
需求:

通过obj对象,调用java.util.Date类中 的toLocaleString方法.
obj.toLocaleString();此时编译报错,编译时,会及检查该编译类型中是否存在toLocalString方法.
如果存在,编译成功,否则编译失败.

解决方案:

因为obj真实类型是java.util.Date类,所以我们可以把obj对象强制转换为java.util.Date类型.
java.util.Date d = (java.util.Date)obj;

d.toLocalString();//调用成功
如果不知道obj的真实类型,就不能强转,(底层有一个方法,返回一个Object类型的java.util.Date对象).
此时问题如何解决?

使用反射

问题2:

在Java中号称一切事物都可以看做为对象,那么类是什么对象?又使用什么类来表示这种对象?

类一旦加载进内存,就会变成Class对象(字节码对象)

反射

反射:得到类的元数据过程,在运行时期,动态的去获取某一个类中的成员信息(构造器,方法,字段,内部类,接口,父类等等)

注意:反射很强悍,但是损耗性能






©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • 转自https://blog.csdn.net/sinat_38259539/article/details/71...
    扎Zn了老Fe阅读 535评论 0 4
  • 2018年01月17日,周三,今晚在cctalk平台听吴虹校长的《期末家长会如何更有效》,受益匪浅。在201...
    长洲047韦海珠阅读 246评论 0 0
  • 时隔多年,有些人有些事,依然无法释怀。你无法原谅他对你的伤害,可是你不也同样伤害了别人?或许这就是宿命,上辈子欠下...
    慕容若斓阅读 172评论 0 0
  • 苏轼的《春宵》:“春宵一刻值千金,花有清香月有阴”,每逢与你欢笑的时刻,我都是那么的幸福、满足,都看做是无比珍惜的...
    辞起笔伏阅读 212评论 0 1