反射一(Java)
- JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制.
代码示例
package reflect;
//什么叫反射
public class Test02 extends Object{
public static void main(String[] args) throws ClassNotFoundException {
//通过反射获取类的Class对象
Class c1 = Class.forName("reflect.User");
System.out.println(c1);//输出的结果是 class reflect.User
//输出结果相同,说明一个类在内存中只有一个Class对象
//一个类被加载后,类的整个结构都会被封装在Class对象中
Class c2 = Class.forName("reflect.User");
Class c3 = Class.forName("reflect.User");
Class c4 = Class.forName("reflect.User");
System.out.println(c2.hashCode());//c2.hashCode()输出的结果是数字19997786
System.out.println(c3.hashCode());//19997786
System.out.println(c4.hashCode());//19997786
}
}
//实体类:pojo、entity
class User{
private String name;//19997786
private int id;//19997786
private int age;//19997786
public User() {
}
public User(String name, int id, int age) {
this.name = name;
this.id = id;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", id=" + id +
", age=" + age +
'}';
}
}