在开发中,我们经常需要不通过类名来直接访问或者获取类实例。
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; }