反射①:如何獲取class對象六種方法


獲取class對象的六種方法

了解:class類——是Java反射機制的入口,封裝了一個類或接口的運行信息,通過調用Class類的方法可以獲取這些信息,其特點如下:

 

1、該類在java.lang包中;

2、該類被final所修飾,即該類不可以被子類繼承

3、該類實現了Serializable接口

4、該類的構造方法被private所修飾,所以不能通過new關鍵字創建該類的對象

 

①先創建一個類

//創建一個Student類
package com.zzj.vo;

public class Student {

    public String name;
    
    public Student(){
        
    }
    
    public Student(String name){
        this.name = name;
    }
    
    public void doHomework(){
        System.out.println(name+"正在寫作業...");
    }
    
}

②測試獲取對象

第一種:Class.forName方法獲取

Class clazz = null;
try {
        clazz = Class.forName("com.zzj.vo.Student");
        System.out.println(clazz.getName());
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
}        
//輸出結果為com.zzj.vo.Student

第二種:類名.class方法獲取

clazz = Student.class;
System.out.println(clazz.getName());
//輸出結果為com.zzj.vo.Student

第三種:對象.getClass()

clazz = new Student().getClass();
System.out.println(clazz.getName());
//輸出結果為com.zzj.vo.Student

第四種:基本數據類型對應的class對象:包裝類、TYPE

clazz = Integer.TYPE;
System.out.println(clazz.getName());//輸出int
clazz = Integer.class;
System.out.println(clazz.getName());//輸出java.lang.Integer

第五種:數組類型對應的class:元素類型[].class

clazz = String[].class;
System.out.println(clazz.getName());
//輸出結果為[Ljava.lang.String;

第六種:某個類父類所對應的的class對象

clazz = Student.class.getSuperclass();
System.out.println(clazz.getName());
//輸出結果為java.lang.Object


免責聲明!

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



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