概念
網(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í)行其中任意方法
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)