利用java反射实现独立模块功能

xiaoxiao2021-02-28  138

应用背景:如果说A模块中有B模块需要实现不同功能的独立模块,利用反射可以初始化出B模块功能对应的实例。eg:跳转同一页面显示不同标题重点:建立一个抽象类,表示功能基础单元。如: public abstract class BaseModel{ protected void initTitle(){ /base.... } }

利用反射实例化功能单元。 3. 建立独自功能的类:

class NameAModel extends BaseModel{ protected void initTitle(){ //A.... } } class NameBModel extends BaseModel{ protected void initTitle(){ //B.... } }

4.实例化功能单元:在所需要的activity中,

private static final String INTENT_MODEL_CLASS_NAME = "intent_model_class_name"; public static void startActivity(Context context, Class<? extends BaseModel> modelClass) { Intent intent = new Intent(context, activity.class); intent.putExtra(INTENT_MODEL_CLASS_NAME, modelClass.getName()); context.startActivity(intent); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... try{ Class<? extends BaseModel> model = Class.forName(intent.getStringExtra(INTENT_MODEL_CLASS_NAME); Constructor con = model.newInstance(); con.initTitle(); }catch{ } }
转载请注明原文地址: https://www.6miu.com/read-20066.html

最新回复(0)