Effective Java 学习笔记(第53条:接口优先于反射机制)
精选 转载小白_白_白 博主文章分类:Effective Java
核心反射机制(core reflection facility)java.lang.reflect,提供了“通过程序来访问关于已装载的类的信息”的能力。
丧失了编译时类型检查的好处,包括异常检查。
执行反射访问所需要的代码非常笨拙和冗长。
性能损失。
反射功能只是在设计时(design time)被用到。通常,普通应用程序在运行时不应该以反射方式访问对象。
如果只是以非常有限的形式使用反射机制,虽然也要付出少许代价,但是可以获得许多好处。对于有些程序,它们必须用到在编译时无法获取的类,但是在编译时存在适当的接口或者超类,通过它们可以引用这个类(见第52条)。如果是这种情况,就可以以反射方式创建实例,然后通过它们的接口或者超类,以正常的方式访问这些实例。
简而言之,反射机制是一种功能强大的机制,对于特定的复杂系统编程任务,它是非常必要的,但它也有一些缺点。如果你编写的程序必须要与编译时未知的类一起工作,如有可能,就应该仅仅使用反射机制来实例化对象,而访问对象时则使用编译时已知的某个接口或者超类。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
一文读懂《Effective Java》第53条:接口优先于反射机制
核心反射机制提供了“通过程序来访问关于已经装载的类信息”。
反射机制 实例化 方法调用 构造器 运行时错误 -
Effective java学习笔记
第二章创建和销毁对象第一条:考虑用静态工厂方法代替构建器 . 我们知道有几
java string arrays class math -
java学习笔记09--反射机制java 实例化 构造方法 父类 i++