У меня есть меню с двумя опциями, и в зависимости от того, какую опцию я выберу, мое приложение должно отображать RepoNavBar или UserNavBar. Эти классы являются детьми NavBar.
У меня есть CommonPage, в котором есть несколько общих компонентов во всем проекте, и у этого класса есть два дочерних элемента RepoCommonPage и UserCommonPage, в которых объявлены RepoNavBar и UserNavBar.
CommonPage использует классы типа ContentComponent, такие как:
public void setup(CommonPage<?> parentPage) {
...
}
Когда я пытаюсь скомпилировать, я получаю эту ошибку:
Причина: java.lang.RuntimeException: были обнаружены следующие проблемы с зависимостями:
[ИНФО] Неоднозначное разрешение для поля @Default com.client.local.common.ContentComponent в классе @Any @Default com.client.local.usermgt.common.UserCommonPage.
Что может быть не так?
Вот как я делаю:
public abstract class NavBarComponent implements IsElement {
@Templated(value = "navbar.html#navBtn")
public static class NavBarItemComponent extends SimpleValueItemComponent<String> {...}
...
}
public class RepoNavBarComponent extends NavBarComponent {
...
}
public class UserNavBarComponent extends NavBarComponent {
...
}
public abstract class CommonPage<T extends ContentComponent> {
...
}
public class UserCommonPage<T extends ContentComponent> extends CommonPage<T>{
...
}
public class RepoCommonPage<T extends ContentComponent> extends CommonPage<T> {
...
}
ContentComponent внедряется так:
public class UserCommonPage<T extends ContentComponent> extends CommonPage<T>{
protected UserNavBarComponent userNavBar;
public UserNavBarComponent getUserNavBar() {
return userNavBar;
}
@PageShown
public void preparePageShown() {
log.debug("Page shown");
userNavBar.refresh();
}
}