反射是什么?
反射--在程序運(yùn)行的過(guò)程中,可以得到某個(gè)類的對(duì)象,可以調(diào)用某個(gè)類中的任何一個(gè)變量/方法,這種動(dòng)態(tài)獲取信息的過(guò)程就是反射。
反射對(duì)象---就是我們通過(guò)上面的反射機(jī)制得到的對(duì)象。
實(shí)例對(duì)象--就是我們通過(guò)類創(chuàng)建出來(lái)的對(duì)象。
例如:我們站在鏡子前面一樣,鏡子前面的自己就是實(shí)例對(duì)象,通過(guò)鏡子看到的鏡子里面的自己就是反射對(duì)象。
鏡子---反射機(jī)制
鏡子前面的自己----實(shí)例對(duì)象
鏡子中的自己--------反射對(duì)象
在java中Class類的對(duì)象就是反射對(duì)象。
class---創(chuàng)建類的關(guān)鍵字。
如何得到反射對(duì)象
1.?通過(guò)實(shí)例對(duì)象的getClass方法得到,當(dāng)前類的發(fā)射對(duì)象
public ?class ?Student{}
Student ?stu=new ?Student();
?Class ?stuclass=Stu.getClass();
2.?通過(guò)Class類提供的靜態(tài)方法forname(包名+類名)
package ?com.wanxging.demo;
public ?class ?Student{}
Class stuclass=Class.forname(“com.wanxging.demo.Student”);
如何通過(guò)反射對(duì)象得到實(shí)例對(duì)象
通過(guò)反射對(duì)象的newInstance()方法得到實(shí)例對(duì)象
package ?com.wanxging.demo;
public ?class ?Student{}
Class stuclass=Class.forname(“com.wanxging.demo.Student”);
Student stu=(Student)Stuclass.newInstance();