[英]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.