java獲取反射機(jī)制的3種方法總結(jié)
反射機(jī)制的概念:
指在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法,對(duì)于任意一個(gè)對(duì)象,都能調(diào)用它的任意一個(gè)方法.這種動(dòng)態(tài)獲取信息,以及動(dòng)態(tài)調(diào)用對(duì)象方法的功能叫java語(yǔ)言的反射機(jī)制.
反射機(jī)制的應(yīng)用:
生成動(dòng)態(tài)代理,面向切片編程(在調(diào)用方法的前后各加棧幀).
反射機(jī)制的原理:
1 首先明確的概念: 一切皆對(duì)象----類也是對(duì)象.
2 然后知道類中的內(nèi)容 :modifier constructor field method.
3 其次明白加載: 當(dāng)Animal.class在硬盤(pán)中時(shí),是一個(gè)文件,當(dāng)載入到內(nèi)存中,可以認(rèn)為是一個(gè)對(duì)象,是java.lang.class的對(duì)象.
java 獲取反射常使用的三種方式:
1.通過(guò)new對(duì)象實(shí)現(xiàn)反射機(jī)制
2.通過(guò)路徑實(shí)現(xiàn)反射機(jī)制
3.通過(guò)類名實(shí)現(xiàn)反射機(jī)制
- 通過(guò)Object類的getClass方法來(lái)獲取
- 使用.class的方式
- 使用Class.forName方法
例子:
建立一個(gè)學(xué)生類:
public class Student {
private int id;
String name;
protected boolean sex;
public float score;
}
獲取反射機(jī)制
public class Get {
//獲取反射機(jī)制三種方式
public static void main(String[] args) throws ClassNotFoundException {
//方式一(通過(guò)建立對(duì)象)
Student stu = new Student();
Class classobj1 = stu.getClass();
System.out.println(classobj1.getName());
//方式二(所在通過(guò)路徑-相對(duì)路徑)
Class classobj2 = Class.forName("fanshe.Student");
System.out.println(classobj2.getName());
//方式三(通過(guò)類名)
Class classobj3 = Student.class;
System.out.println(classobj3.getName());
}
}
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
SpringBoot使用WebSocket實(shí)現(xiàn)向前端推送消息功能
WebSocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議,它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工(full-duplex)通信——允許服務(wù)器主動(dòng)發(fā)送信息給客戶端,本文給大家介紹了SpringBoot使用WebSocket實(shí)現(xiàn)向前端推送消息功能,需要的朋友可以參考下2024-05-05
使用AOP+反射實(shí)現(xiàn)自定義Mybatis多表關(guān)聯(lián)查詢
這篇文章主要介紹了使用AOP+反射實(shí)現(xiàn)自定義Mybatis多表關(guān)聯(lián),目前的需求是增強(qiáng)現(xiàn)有的查詢,使用簡(jiǎn)單的注解即可實(shí)現(xiàn)多表關(guān)聯(lián),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Java程序員必須知道的5個(gè)JVM命令行標(biāo)志
這篇文章主要介紹了每個(gè)Java程序員必須知道的5個(gè)JVM命令行標(biāo)志,需要的朋友可以參考下2015-03-03
Java 中的CharArrayReader 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
CharArrayReader 是字符數(shù)組輸入流。它和ByteArrayInputStream類似,只不過(guò)ByteArrayInputStream是字節(jié)數(shù)組輸入流,而CharArray是字符數(shù)組輸入流。CharArrayReader 是用于讀取字符數(shù)組,它繼承于Reader2017-05-05
SpringBoot @PostConstruct原理用法解析
這篇文章主要介紹了SpringBoot @PostConstruct原理用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
jdbc連接數(shù)據(jù)庫(kù)實(shí)例詳解
在本篇內(nèi)容里小編給大家分享了關(guān)于jdbc如何連接數(shù)據(jù)庫(kù)的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-02-02

