|
|
@@ -23,7 +23,7 @@ public class ViewHelper {
|
|
|
* 初始化添加注解的变量
|
|
|
* final Class<? extends IView> getClass,可以代表接口的实现类
|
|
|
*/
|
|
|
- public static <V extends IView> void initVariables(List<BasePresenter<V>> mInjectPresenters, final ViewModelStoreOwner owner, final IView iView) {
|
|
|
+ public static void initVariables(List<BasePresenter<?>> mInjectPresenters, final ViewModelStoreOwner owner, final IView iView) {
|
|
|
mInjectPresenters.clear();
|
|
|
// 这里可以获取到子类的成员变量
|
|
|
Field[] fields = iView.getClass().getDeclaredFields();
|
|
|
@@ -38,12 +38,12 @@ public class ViewHelper {
|
|
|
field.setAccessible(true);
|
|
|
|
|
|
// 父类引用指向子类对象
|
|
|
- Class<? extends BasePresenter<V>> type = (Class<? extends BasePresenter<V>>) field.getType();
|
|
|
+ Class<? extends BasePresenter<?>> type = (Class<? extends BasePresenter<?>>) field.getType();
|
|
|
//BasePresenter<V> presenter = type.newInstance();
|
|
|
// todo 下面这种方法是单例形式,会造成重复回调的问题
|
|
|
- BasePresenter<V> presenter = new ViewModelProvider(owner).get(type);
|
|
|
+ BasePresenter presenter = new ViewModelProvider(owner).get(type);
|
|
|
field.set(iView, presenter);
|
|
|
- presenter.attachView((V) iView);
|
|
|
+ presenter.attachView(iView);
|
|
|
mInjectPresenters.add(presenter);
|
|
|
} catch (IllegalAccessException e) {
|
|
|
e.printStackTrace();
|