Java——反射机制
反射机制
反射机制是指在运行时,对于任意一个类,可以知道这个类的所有属性和方法;对于任意一个对象,可以调用它的任意一个方法和属性。即动态获取信息和动态调用对象方法的功能称为反射机制。Spring框架的底层很多时候依赖于反射机制。
1. 反射机制作用:
2判断1构造1调用
在运行时判断任意一个对象它所属的类
在运行时判断任意一个类所具有的方法和成员变量
在运行时构造一个类的对象
在运行时调用任意一个对象的方法,生成动态代理。
2. 获取Class类三种基本方式:
2.1 类名称.class
通过类名称.class来获取Class类对象
1 Class c = int.class; 2 Class c = String.class;
2.2 对象.getClass( )
通过对象.getClass( )方法来获取Class类对象
1 Class c = obj.getClass();
2.3 Class.forName( )
通过类名称加载类Class.forName( ),只要有类名称就可以得到Class
1 1 Class c = Class.forName("reflection.Demo1");
3. Demo
使用第三种方式创建类的对象
1 package reflection; 2 3 public class Demo { 4 public static void main(String[] args) throws Exception { 5 String className = "reflection.User"; 6 // 获取Class对象 7 Class clazz = Class.forName(className); 8 9 // 创建User对象 10 User user = (User) clazz.newInstance(); 11 // 和普通对象一样,可以设置属性值 12 user.setUsername("wooch"); 13 user.setPassword("19711111"); 14 15 System.out.println(user); 16 } 17 } 18 19 class User { 20 private String username; 21 private String password; 22 23 public String getUsername() { 24 return username; 25 } 26 27 public void setUsername(String username) { 28 this.username = username; 29 } 30 31 public String getPassword() { 32 return password; 33 } 34 35 public void setPassword(String password) { 36 this.password = password; 37 } 38 39 @Override 40 public String toString() { 41 return getClass().getName() + "[" + "username =" + username + ", password =" + password + "]"; 42 } 43 }

浙公网安备 33010602011771号