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 }
posted @ 2019-12-17 23:53  子春十一  阅读(132)  评论(0)    收藏  举报