MainPresenter実装クラス

/ **
*プレゼンター层、承担业务逻辑处理、数据源处理等
* /
パブリッククラス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();
}
}
--------------------- 

おすすめ

転載: www.cnblogs.com/hyhy904/p/11299090.html