Java SE練習 - 反射獲取對象構造方法、成員變量、成員方法

前言:反射使用回顧

一、獲取字節碼文件對象的三種方式,推薦使用第三種方式

//獲取字節碼文件對象的三種方式
        //方式一
        Class c1 = Student.class;
        //方式二
        Student stu = new Student();
        Class c2 = stu.getClass();
        //方式三
        Class c3 = Class.forName("cn.itcast.javaeevideoday02.Student");

二、獲取無參構造

//獲取對象無參構造
        Constructor constructor = c3.getConstructor();
        Object student = constructor.newInstance();
        System.out.println(student);

三、獲取有參構造

//獲取有參構造
        Constructor constructor2 = c3.getConstructor(String.class,int.class,String.class);
        Object student2 = constructor2.newInstance("張三",20,"男");
        System.out.println(student2);

四、快捷方式獲取對象實例
前提:對象有空參構造,並且權限爲public

//快捷方式獲取對象實例
        Object student = c3.newInstance();
        System.out.println(student);

五、獲取對象成員變量,並賦值和獲取值

Object student = c3.newInstance();

        //給成員變量賦值
        Field field = c3.getField("name");
        field.set(student, "張三");
        System.out.println(student);
        //獲取成員變量值
        Object object = field.get(student);
        System.out.println(object);

六、獲取成員方法
get/set方法示例

Object student = c3.newInstance();

        //有參數set
        Method method = c3.getMethod("setName",String.class);
        method.invoke(student, "張三");
        System.out.println(student);

        //無參數get
        Method method2 = c3.getMethod("getName");
        Object object = method2.invoke(student);
        System.out.println(object);
發佈了51 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章