zoukankan      html  css  js  c++  java
  • [解决方法] 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;
    }
    }
  • 相关阅读:
    DP 免费馅饼 HDU1176
    知了课堂 Python Flask零基础 笔记整理
    Splay入门
    字典树
    榨取kkksc03 多维dp
    种族并查集总结
    倍增总结
    求最大公因数(辗转相除法&更相减损术)
    Bzoj 3036: 绿豆蛙的归宿(期望)
    Bzoj 1497: [NOI2006]最大获利(最小割)
  • 原文地址:https://www.cnblogs.com/gaoxihan/p/8185208.html
Copyright © 2011-2022 走看看