[解決方法] Java-Class.forName() 反射/映射子類 並轉化為父類/接口


實現通過子類名稱字符串 動態獲取生成子類.

用於模板方法, 抽象工廠模式等.

代碼實現:

    public TheParentClass getSubClass(String subClassName)
    {
        Class<?> classSub = Class.forName(subClassName);
        TheParentClass newClass = classSub.asSubclass(TheParentClass.class).newInstance();

        // newClass.doMethod();
        return newClass;
    }

 

用於代替以下邏輯實現:

public TheParentClass getSubClass(String subClassName)
{

if(subClassName=="SubClassA"); 
{
     return  new SubClassA();
}
else if(subClassName=="SubClassB"); 
{
     return  new SubClassB();
}
//......
else
{
return null;
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM