1. 程式人生 > 其它 >java註解與反射之四種獲取class物件的方法,通過class物件獲取父類class物件

java註解與反射之四種獲取class物件的方法,通過class物件獲取父類class物件

技術標籤:# 註解與反射需理解javaclass反射

四種建立class物件的方法

  1. 先建立三個類,Person,Student,Teacher。其中Student和Teacher繼承Person類
class Person{
    public String name;

    public Person() {
    }

    public Person(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Person{"
+ "name='" + name + '\'' + '}'; } } class Student extends Person{ public Student(){ this.name = "學生"; } } class Teacher extends Person{ public Teacher(){ this.name= "老師"; } }
  1. 四種獲取class物件的方法
public class
Test03 { public static void main(String[] args) throws ClassNotFoundException { Person person = new Student(); System.out.println("這個人是:"+person.name); //方式一:通過物件獲得 Class c1 = person.getClass(); System.out.println(c1); System.out.println(c1.
hashCode()); //方式二:forname獲取 Class c2 = Class.forName("com.lixv.reflection.Student"); System.out.println(c2); System.out.println(c2.hashCode()); //方式三:通過類名.class獲取 Class c3 = Student.class; System.out.println(c3); System.out.println(c3.hashCode()); //方式四:基本內建型別的包裝類都有一個Type屬性 Class c4 = Integer.TYPE; System.out.println(c4); } }

執行結果:
在這裡插入圖片描述
hashcode是同一個值,說明,獲取的是同一個物件

  1. 獲取class的父類class物件
//測試建立class類的建立方式有哪些
public class Test03 {
    public static void main(String[] args) throws ClassNotFoundException {
        Person person = new Student();
        System.out.println("這個人是:"+person.name);

        //方式一:通過物件獲得
        Class c1 = person.getClass();
        System.out.println(c1);
        System.out.println(c1.hashCode());

        //獲得父類class物件
        Class c5 = c1.getSuperclass();
        System.out.println(c5);	

    }
}

執行結果:
在這裡插入圖片描述