/ **
*プレゼンター层、承担业务逻辑处理、数据源处理等
* /
パブリッククラスMainPresenterはBasePresenterを拡張<MainContract.IMainView、のDataModel>実装MainContract.IMainPresenter {
@Override
公共ボイドhandlerData(){
getViewメソッド()にShowDialog() ;
getModel()。requestBaidu(新しいコールバック(){
@Override
ます。public void ONFAILURE(コールコールは、IOException電子){
}
@Override
(呼び出し、応答レスポンス)スローにIOException {ます。public void onResponseを呼び出して
文字列の内容= response.body()。文字列();
getViewメソッド()大成功(コンテンツ);
}
})。
}
@Override
公共ボイドデタッチ(){
super.detach()。
/ **
*フリーメモリ、スレッドと他の操作閉じるにはネットワーク要求をシャットダウン
* /
Log.d(「==========」、「Detech:アンバインド、リリースメモリを」);
}
}
ここでは、合格DataModelは一例であり、これはBasePresenterにおける反射コードMainPresenterにおけるオブジェクトのクラスを参照するようにMainPresenter BasePresenterクラスは、ベースクラスから継承します。次のように反射コードを参照してください。
反射コード部分:
反射モデルによってインスタンス化//ジェネリック親クラスによって得られるクラス、インスタンス汎用インターフェースクラスを取得し、
タイプ=ためには、ParameterizedType this.getClass(用は、ParameterizedType)()getGenericSuperclass();.
Log.d(「=== ======== ""アタッチ「+ this.getClass()getSimpleName());.
!IF(タイプ= NULL){
タイプ[] =のtype.getActualTypeArgumentsタイプ(HTTP://www.amjmh .COM / V / BIBRGZ_558768 /);
試み{
。mmodelの=(<?> M)((クラス)タイプ[1])のnewInstance();
}キャッチ(IllegalAccessExceptionがE){
e.printStackTraceは();
}キャッチ(ないInstantiationExceptionでありますE){
e.printStackTrace();
}
}
---------------------