java反射1--产生Class类的实例化对象三个方法

首先每一个类在实例化的时候都会产生一个.class文件。而Class对象既是将.class文件读入内存时,为它创建一个Class对象。

反射就是对Class对象进行操作。

 1 package reflect.vo;
 2 
 3 /**
 4  * @author guohao
 5  * java测试类Student
 6  */
 7 public class Student {
 8     private String name;
 9     private int age;
10     private float score;
11 
12     public Student() {
13     }
14 
15     public String getName() {
16         return name;
17     }
18 
19     public void setName(String name) {
20         this.name = name;
21     }
22 
23     public int getAge() {
24         return age;
25     }
26 
27     public void setAge(int age) {
28         this.age = age;
29     }
30 
31     public float getScore() {
32         return score;
33     }
34 
35     public void setScore(float score) {
36         this.score = score;
37     }
38 
39 }

 

1.Object 类提供一个返回Class类对象的方法getClass()

 1 package reflect.vo;
 2 public class test {
 3  
 4  public static void main(String[] args) throws Exception {
 5   
 6         Student stu = new Student();//这一new 产生一个Student对象,一个Class对象。  
 7         Class cls = stu.getClass();//获取Class对象  
 8         System.out.println(cls.getName());  
 9         
10  }

2.利用“类.class”取得

1 package reflect.vo;
2 
3 public class test {
4 
5     public static void main(String[] args) throws Exception {
6         Class cls = Student.class;  
7         System.out.println(cls);
8     }
9 }

3.利用Class类的static方法取得 Class.forName(); 

 

 1 package reflect.vo;
 2 
 3 public class test {
 4 
 5     public static void main(String[] args) throws Exception {
 6         Class<?> cls = Class.forName("reflect.vo.Student");
 7         System.out.println(cls);
 9     }
10 }

三种方式常用第三种,第一种对象都有了还要反射干什么。

第二种需要导入类的包,依赖太强,不导包就抛编译错误。

一般都第三种,一个字符串可以传入也可写在配置文件中等多种方法。

注:最后一句话引用自  https://blog.csdn.net/sinat_38259539/article/details/71799078

 

猜你喜欢

转载自www.cnblogs.com/guohao134/p/9181363.html