我有一个带有两个选项的菜单,并且根据我选择的选项,我的应用程序应显示RepoNavBar或UserNavBar。这些课程是NavBar的子级。
我有一个CommonPage,其中所有项目中都有一些通用组件,并且此类有两个子级RepoCommonPage和UserCommonPage,其中两个子级分别声明为RepoNavBar和UserNavBar。
CommonPage使用类似ContentComponent类型的类,
public void setup(CommonPage<?> parentPage) {
...
}
当我尝试编译时,出现此错误:
原因:java.lang.RuntimeException:发现了以下依赖关系问题: [INFO]类@Any @Default com.client.local.usermgt.common.UserCommonPage中字段@Default com.client.local.common.ContentComponent的解析度不明确。
有什么问题吗?
这就是我的做法:
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();
}
}
答案 0 :(得分:1)
我敢打赌FullName
(以及其他类似FullName
的人)应该是UserCommonPage
。
此外,如果这还不够的话,也许您需要创建第三个中间类,为每个用例扩展RepoCommonPage
。例如:
abstract