1.什么是反射(Reflection)
Reflection is a feature in the Java programming language. It allows an executing Java program to examine or "introspect" upon itself, and manipulate internal properties of the program. For example, it's possible for a Java class to obtain the names of all its members and display them.
反射是 Java 编程语言的一个特性。它允许正在执行的 Java 程序对自身进行检查或“内省”,并操作程序的内部属性。例如,Java 类可以获取其所有成员的名称并显示它们。
The ability to examine and manipulate a Java class from within itself may not sound like very much, but in other programming languages this feature simply doesn't exist. For example, there is no way in a Pascal, C, or C++ program to obtain information about the functions defined within that program.
从内部检查和操作 Java 类的能力听起来可能不怎么样,但是在其他编程语言中,这个特性根本不存在。例如,在 Pascal、 c 或 c + + 程序中无法获得关于程序中定义的函数的信息。
One tangible use of reflection is in JavaBeans, where software components can be manipulated visually via a builder tool. The tool uses