本篇內(nèi)容主要講解“JDK怎么反射實例化對象”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JDK怎么反射實例化對象”吧!
創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構建的平臺為眾多戶提供溫江服務器租用 四川大帶寬租用 成都機柜租用 成都服務器租用。
獲取Class對象后最大意義實際上并不是在于只是一個對象的實例化操作形式,更重要的是Class類中提供了一個對象的反射實例化方法(代替了關鍵字new):
在JDK1.9以前的實例化:
@Deprecated(since="9")public T newInstance() throws InstantiationException, IllegalAccessException
在JDK1.9之后的實例化:
clazz.getDeclaredConstructor().newInstance()
范例:通過newInstance()方法實例化Person類對象
package cn.mldn.vo;public class Person {//任何情況下如果要實例化類對象,一定要調(diào)用類中的構造方法public Person(){ //無參構造方法System.out.println("*********** Person類構造方法 ************"); } @Overridepublic String toString() {return "我是一個人,一個脫離了低級趣味的好人!"; } }
package cn.mldn.demo; public class JavaAPIDemo { public static void main(String[] args) throws Exception { Class<?> cls=Class.forName("cn.mldn.vo.Person");Object obj= cls.newInstance(); //實例化對象,JDK1.9后被廢除了System.out.println(obj); //輸出對象調(diào)用toString()方法/** * *********** Person類構造方法 ************ * 我是一個人,一個脫離了低級趣味的好人! */} }
現(xiàn)在通過反射實現(xiàn)的對象實例化處理,依然要調(diào)用類中的無參構造方法,其本質(zhì)等價于“類 對象 = new 類()”,相當于隱含了關鍵字new,而直接使用字符串進行了替代。
范例:使用getDeclaredConstructor().newInstance()進行對象實例化
package cn.mldn.demo; public class JavaAPIDemo { public static void main(String[] args) throws Exception { Class<?> cls=Class.forName("cn.mldn.vo.Person");Object obj= cls.getDeclaredConstructor().newInstance(); //實例化對象,JDK1.9廢除了System.out.println(obj);/** * *********** Person類構造方法 ************ * 我是一個人,一個脫離了低級趣味的好人! */} }
從JDK1.9后,newInstance()被替代了,因為默認的Class類中的newInstance()方法只能調(diào)用無參構造,所以很多開發(fā)者會認為其描述的不準確,于是將其變換了形式。
到此,相信大家對“JDK怎么反射實例化對象”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
當前名稱:JDK怎么反射實例化對象
文章鏈接:http://chinadenli.net/article44/pigghe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、微信公眾號、手機網(wǎng)站建設、ChatGPT、虛擬主機、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)