فهرست منبع

优化方法调用

詹子聪 5 سال پیش
والد
کامیت
0d9fe26acf

+ 8 - 4
mvp/src/main/java/com/miekir/mvp/view/model/BaseMVPActivity.java

@@ -133,11 +133,15 @@ public abstract class BaseMVPActivity extends BaseActivity implements IView {
 
     private void onDataResult(DataResult result) {
         dismissLoading();
+        Class objParamClass = result.getBean().getClass();
         for (Method method : mDataMethodList) {
-            try {
-                method.invoke(this, result.getCode(), result.getMessage(), result.getBean());
-            } catch (Exception e) {
-                //e.printStackTrace();
+            Class methodParamClass = method.getParameterTypes()[2];
+            if (methodParamClass.isAssignableFrom(objParamClass)) {
+                try {
+                    method.invoke(this, result.getCode(), result.getMessage(), result.getBean());
+                } catch (Exception e) {
+                    //e.printStackTrace();
+                }
             }
         }
     }

+ 8 - 4
mvp/src/main/java/com/miekir/mvp/view/model/BaseMVPFragment.java

@@ -175,11 +175,15 @@ public abstract class BaseMVPFragment extends BaseFragment implements IView {
 
     private void onDataResult(DataResult result) {
         dismissLoading();
+        Class objParamClass = result.getBean().getClass();
         for (Method method : mDataMethodList) {
-            try {
-                method.invoke(this, result.getCode(), result.getMessage(), result.getBean());
-            } catch (Exception e) {
-                //e.printStackTrace();
+            Class methodParamClass = method.getParameterTypes()[2];
+            if (methodParamClass.isAssignableFrom(objParamClass)) {
+                try {
+                    method.invoke(this, result.getCode(), result.getMessage(), result.getBean());
+                } catch (Exception e) {
+                    //e.printStackTrace();
+                }
             }
         }
     }