2018-09-20 通过newInstance构造实例

使用asSubclass来确定是否某个对象的子类

public static  T newInstanceThrow(String className, Class castClass) {
        try {
            return Class.forName(className).asSubclass(castClass).newInstance();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

通过newInstance来获取实例

decisionMaker = ResaUtils.newInstanceThrow((String) conf.getOrDefault(DECISION_MAKER_CLASS,
                DefaultDecisionMaker.class.getName()), DecisionMaker.class);

通过这种方式来动态地加载类,方便一个类有许多子类时可以选择调用具体某个类

你可能感兴趣的:(2018-09-20 通过newInstance构造实例)