2013-07-30 56 views
0

我对Java很新,在java教程中,它使用术语“class literal”和“reflection”。Java类文字和反射?

从从Java网站,http://docs.oracle.com/javase/tutorial/reflect/index.html反射API线索,它说

扩展性功能 应用程序可以充分利用其创建扩展对象的实例利用外部的,用户定义的类合格的名字。

这是什么意思?

谢谢。

+0

请参阅[什么是Java中的类文字?](http://stackoverflow.com/questions/2160788/what-is-a-class-literal-in-java) – Joe

回答

2

类文字类似于String.class,即代表String类的编译时文字。简而言之,反射是一种语言功能,可以让你“反映”代码,也就是说,你可以查询系统的类,方法,字段等,并使用该数据创建新的实例,调用方法或改变字段的值。

反射对于创建在编译时不知道但在运行时位于类路径中的类的对象可能很有用。几个扩展框架利用它,主要是通过在某些文本文件中提供完全合格的类名(例如com.acme.SomeFancyClass),从类加载器获取关联的Class对象并创建新实例。其他框架(例如,Apache Common的构建器对象,OGNL,Java Bean等)使用反射来查询可以访问的可用属性(获取器和/或匹配设置器)(通过调用这些获取器/设置器)。但是,如果您是Java的新手,我建议您先深入其他语言功能,然后再在思考工具的深处放松自己。