在开发中,我们经常需要不通过类名来直接访问或者获取类实例。

1.通过类全路径获取类实例,并调用其方法

    BaseFragment newFragment;
    Class<BaseFragment> classStr = (Class<BaseFragment>) Class.forName(className);
    Constructor constructor = classStr.getConstructor();
    newFragment = (BaseFragment) constructor.newInstance();

2.通过类名获取类成员变量

try {
    Class<?> buildInfo = Class.forName(Consts.PACKAGE_NAME + Consts.DOT +
            Consts.ROUTER_BUILD_INFO);
    Field allModules = buildInfo.getField(Consts.BUILD_INFO_FIELD);
    String modules_name = (String) allModules.get(buildInfo);
} catch (Exception e) {
    e.printStackTrace();
    return;
}


本文转载:CSDN博客