簡體   English   中英

用Java動態加載類

[英]Dynamic Class loading in java

我有一些奇怪的要求,我需要動態加載類,

這里我有一個Interface

    public interface House
    {
       public Object loadHouseModel(String type);
       public Object loadHouseSpace(String type); 
     } 

現在所需的類將實現此接口

     public class DuplexHouse implements House 
     {
        public Object loadHouseModel(String type)
        {
             ///Method body goes here
        }
        public Object loadHouseSpace(String type)
         {
             ///Method body goes here
         }
      }   

現在我的要求是我需要加載DuplexHouse或實現House任何類

要求是DuplexHouse類名,我將從屬性中獲得它,而我所知道的是,我獲得的類名將實現House接口。 所以我的屬性看起來像這樣type_house=xx.xx.xxx.DuplexHouse,xx.xx.xx.TruplexHouse,..etc

根據房屋的類型,我需要加載相應的房屋對象

所以在我的主類中, Class cl = Class.forName(xx.xxx.xxx.DuplexHouse); 我的要求是我想要內部包含DuplexHouse對象的House實例,該怎么辦?

首先做Class.forName 這將為您提供Class<?>形式的DuplexHouse類。 在此上,執行newInstance() 它將以Object的形式為您提供DuplexHouse的實例。 鑄造這House ,你有你DuplexHouse實例的形式House

這假設(1)類路徑中的DuplexHouse類(2)DuplexHouse構造函數采用零參數。

@Babel我不太理解您的問題,但是您可以使用instanceof關鍵字檢查對象是否是任何類或接口的instanceof

例如

boolean isLion = felineAnimal instanceof Lion boolean isWolf = canineAnimal instanceof Wolf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM