Java中的反射

概念

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了信陽免費(fèi)建站歡迎大家使用!

JAVA中反射是動態(tài)獲取信息以及bai動態(tài)調(diào)用對象方法的du一種反射機(jī)制。Java反射就是在運(yùn)行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意方法和屬性;并且能改變它的屬性。而這也是Java被視為動態(tài)語言的一個關(guān)鍵性質(zhì)。Java反射的功能是在運(yùn)行時判斷任意一個對象所屬的類,在運(yùn)行時構(gòu)造任意一個類的對象,在運(yùn)行時判斷任意一個類所具有的成員變量和方法,在運(yùn)行時調(diào)用任意一個對象的方法,生成動態(tài)代理。

Java反射案例

寫一個"框架",不能改變該類的任何代碼的前提下,可以幫我們創(chuàng)建任意類的對象,并且執(zhí)行其中任意方法

Java中的反射

className=Student
methodName=sleep

代碼

import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;
/**
 * @author tanglei
 * @date 2020/6/11 3:10 下午
 */
public class ReflectTest {
    public static void main(String[] args) throws Exception {
        Student s = new Student();
        Properties pro = new Properties();
        //獲取配置文件的路徑
        ClassLoader classLoader = ReflectTest.class.getClassLoader();
        InputStream is = classLoader.getResourceAsStream("pro.properties");
        pro.load(is);
        String className = pro.getProperty("className");
        String methodName = pro.getProperty("methodName");
        //加載類進(jìn)內(nèi)存
        Class cla = Class.forName(className);
        Object obj = cla.newInstance();
        //加載方法進(jìn)內(nèi)存
        Method method = cla.getMethod(methodName);
        method.invoke(obj);
    }
}

以上就是Java反射案例(不要錯過)的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

分享標(biāo)題:Java中的反射
當(dāng)前鏈接:http://muchs.cn/article48/pjjhep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、Google響應(yīng)式網(wǎng)站、ChatGPT軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)