反射允許對(duì)成員變量,成員方法和構(gòu)造方法的信息進(jìn)行編程訪問(wèn),就是把類(lèi)里面所有東西都扒出來(lái)。比如idea的代碼提示功能就是用的反射實(shí)現(xiàn)的。

image.png
一、獲取class對(duì)象的三種方式

image.png
package com.反射demo;
public class 反射的三種實(shí)現(xiàn)方式 {
public static void main(String[] args) throws ClassNotFoundException {
// 1.全類(lèi)名:包名 + 類(lèi)名 (最常用)
Class cs1 = Class.forName("com.反射demo.Student");
System.out.println(cs1);
//2.這種一般是當(dāng)做參數(shù)進(jìn)行傳遞
Class cs2 = Student.class;
System.out.println(cs2);
// 3.當(dāng)已經(jīng)有了這個(gè)類(lèi)的對(duì)象時(shí)才可以使用
Student student = new Student();
Class cs3 = student.getClass();
System.out.println(cs3);
}
}
二、反射獲取構(gòu)造方法

image.png

image.png
三、反射獲取成員變量

image.png

image.png
四、反射獲取成員方法

image.png

image.png
五、反射的作用
1.獲取一個(gè)類(lèi)里面所有的信息,獲取到了之后,再執(zhí)行其他的業(yè)務(wù)邏輯
比如將對(duì)象的所有成員變量以變量名+值的方式存儲(chǔ)到本地文件

image.png
2.結(jié)合配置文件,動(dòng)態(tài)的創(chuàng)建對(duì)象并調(diào)用方法

image.png

image.png
參考:黑馬java教程