我对java很陌生,在java教程中它使用术语“类文字”和“反射”。
从java网站的反射api跟踪,http ://docs.oracle.com/javase/tutorial/reflect/index.html ,它说
可扩展性特性 应用程序可以通过使用其完全限定名称创建可扩展性对象的实例来使用外部的、用户定义的类。
这意味着什么?
谢谢。
我对java很陌生,在java教程中它使用术语“类文字”和“反射”。
从java网站的反射api跟踪,http ://docs.oracle.com/javase/tutorial/reflect/index.html ,它说
可扩展性特性 应用程序可以通过使用其完全限定名称创建可扩展性对象的实例来使用外部的、用户定义的类。
这意味着什么?
谢谢。
类文字类似于String.class
,即表示String
类的编译时文字。
简而言之,反射是一种语言特性,它允许你对代码进行“反射”,即你可以查询系统中的类、方法、字段等,并使用这些数据来创建新实例、调用方法或更改字段。
反射对于创建在编译时未知但在运行时位于类路径上的类的对象可能很有用。一些扩展框架利用了这一点,主要是通过在某些文本文件(例如com.acme.SomeFancyClass
)中提供完全限定的类名,从类加载器获取关联的Class
对象并创建新实例。
其他框架(例如 Apache Common 的构建器对象、OGNL、Java Bean 等)使用反射来查询可以访问(通过调用这些 getter/setter)的可用属性(getter 和/或匹配的 setter)。
但是,如果您是 Java 新手,我建议您先深入了解其他语言功能,然后再深入了解反射工具。