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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM