有人能解释一下吗?Java中的Reflection
和metadata
有什么区别?
最好在Reflection(计算机编程)- wikipedia上解释
在计算机科学中,
reflection
是计算机program
检查(参见类型自省)和修改run-time
程序的结构和行为(特别是values
、meta-data
、properties
和functions
)的能力。
reflection
是一种在运行时提取程序meta-data
的技术。
什么是元数据?
这在Metadata - wikipedia
中也有解释。
Metadata
为"data about data"。
这个术语是模棱两可的,因为它用于两个根本不同的概念(类型)。
Structural
元数据是关于数据结构的设计和规范,更恰当的说法是&关于数据容器的数据&;;Descriptive
元数据,另一方面,是关于应用程序数据的单个实例,即数据内容。
反射是你在运行时检查类、方法等的方式,而不知道它们在编译时的存在。它与静态类型代码不同,静态类型代码是为一组已知的类编译的,而反射可用于在运行时加载任何类对象并执行自省。
元数据是关于数据的数据。指定元数据的一个非常重要的技术是使用带有Runtime RetentionPolicy的注释。看到@Annotation。反射可以非常方便地提取注释值…注释的一些例子是Hibernate中的@Entity注释或JAX中的@XML或Spring中的@Transaction .元数据与反射一起在JUnit或Spring框架等几个地方使用。