Moxy icon indicating copy to clipboard operation
Moxy copied to clipboard

Проблема при наследовании параметризованных интерфейсов

Open Demin92 opened this issue 7 years ago • 8 comments

Здравствуйте! я создал следующую иерархию интерфейсов

public interface IBaseFragment<ViewModel> extends MvpView {
    void showContent(ViewModel viewModel);
}
public interface IBaseListFragment<ViewModel> extends IBaseFragment<ViewModel> {
}
public interface IBasePagingListFragment<ViewModel> extends IBaseListFragment<ViewModel> {
}
public interface IProductsView  extends IBasePagingListFragment<ProductsViewModel> {
}

Далее если заинжектить интерфейс view

@InjectViewState
public class ProductPresenter extends MvpPresenter<IProductsView> {
}

то сборка падает с ошибкой в сгенерированном классе IProductsView$$State ибо не может найти класс ViewModel. При чём, если убрать из иерархии IBasePagingListFragment<ViewModel>, то всё собирается нормально

Demin92 avatar Jun 27 '17 17:06 Demin92

Вы точно привели не полный пример кода, потому что у вас ProductPresenter не типизирован никакой View

senneco avatar Jun 28 '17 04:06 senneco

Редактор не воспринял типизирование, комментарий обновил

Demin92 avatar Jun 28 '17 09:06 Demin92

А какая версия moxy используется?

senneco avatar Jun 28 '17 11:06 senneco

1.5.3

def moxy = '1.5.3'
compile "com.arello-mobile:moxy:$moxy"
compile "com.arello-mobile:moxy-app-compat:$moxy"
annotationProcessor "com.arello-mobile:moxy-compiler:$moxy"

Demin92 avatar Jun 28 '17 11:06 Demin92

@senneco что нибудь делать планировал?

xanderblinov avatar Sep 01 '17 11:09 xanderblinov

@Demin92 добрый день, извините пожалуйста, что долго не отвечали.

проблема еще актуальна? Приведите, пожалуйста листинг ошибки из Gradle Console

xanderblinov avatar Sep 27 '17 18:09 xanderblinov

У меня похожая ошибка с 1.5.5 версией. С 1.5.3 все работает норм.

AuditListFragmentView$$State.java:183: error: cannot find symbol
		public final RealmResults<T> list;
  symbol:   class T
  location: class AuditListFragmentView$$State.SetItemsCommand
public interface AuditListFragmentView extends RealmView<Audit> {
}

public interface RealmView<T extends RealmModel> extends GenericView {
    void setItems(RealmResults<T> list);
}

public interface GenericView<T extends RealmModel> extends MvpView {
}

Quarx2k avatar Jun 28 '18 10:06 Quarx2k

@xanderblinov @senneco Здравствуйте, проблема еще актуальна, тоже с этим столкнулся. В 1.5.5 не работает, а в 1.5.3 все ок.

sergpetrov avatar Feb 04 '19 11:02 sergpetrov