1.反射概念
Java中的反射机制是指在运行状态中,对于任意一个类,能够动态获取这个类中的属性和方法;对于任意一个对象,都能够任意调用它的属性和方法。这种动态获取类的信息以及动态调用对象方法的功能称为Java的反射机制。
2.反射的实现方式
方法一:直接通过一个class的静态变量class获取
Class cls = String.class;
方法二:通过该实例变量提供的getClass()方法获取
String s = "Hello"; Class cls = s.getClass();
方法三:如果知道一个class的完整类名,可以通过静态方法Class.forName()获取
Class cls = Class.forName("java.lang.String");
因为Class实例(正在运行的 Java 应用程序中的类和接口)在JVM中是唯一的,所以,上述方法获取的Class实例是同一个实例。可以用==比较两个Class实例
Class cls1 = String.class; String s = "Hello"; Class cls2 = s.getClass(); boolean sameClass = cls1 == cls2; // true
3.Class对象操作
3.1字段操作
public class Apple { private String color; private Float weight; public Apple(String color, Float weight) { super(); this.color = color; this.weight = weight; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public Float getWeight() { return weight; } public void setWeight(Float weight) { this.weight = weight; } public String toString() { return "[" + color + "," + weight + "]"; } private String toString(String name) { return name + " like the [" + color + "," + weight + "] apple"; } }