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;
    }
    }
  • 相关阅读:
    Ubuntu安装php7.0环境
    PHP-FPM参数详情
    phpize是干嘛的
    Ubuntu忘记密码
    Ubuntu下面删除和卸载软件
    Js验证正则表达式
    JS发送验证码;并设置cookie
    Shell脚本之sed的使用
    Bash基本功能:输入输出重定向
    shell常用快捷键
  • 原文地址:https://www.cnblogs.com/gaoxihan/p/8185208.html
Copyright © 2011-2022 走看看