程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> lass for ame-Class.fromName()的理解

lass for ame-Class.fromName()的理解

編輯:編程綜合問答
Class.fromName()的理解

Test t=new Test();
和Test t=(Test)Class.forName().newInstance();
有什麼不同 其中的Class.forName()有代表什麼
對於Class.fromName()不太理解 請大神指點

最佳回答:


Test t=new Test();
和Test t=(Test)Class.forName().newInstance();
這樣寫的確沒什麼區別,看上去後者還麻煩一點。

但是我昨天回答你了。有時候我們沒法知道類型,只能反射。

思考下這樣兩個場景,場景1:你在編寫一個開發環境,要求用戶導入一個類,你可以在編輯器中給出這個類有什麼方法,有什麼參數之類的提示,那麼這個類的類型不可能在你開發編輯器的時候知道。

也就是Test你不能這麼寫。它在你的代碼中沒有。那怎麼創建實例怎麼調用?只能用object類型。可是object類型沒有辦法new出一個實際上test的類型,就需要反射了。

再比如場景2:你編寫的程序允許第三方開發插件,或者你本身就是一個插件容器。好比Spring。那麼它怎麼能new你的bean出來呢?顯然還是要通過反射。你用配置文件以字符串的形式寫出類名,程序根據它創建實例,那就要Class.fromName()

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved