【发布时间】:2022-07-21 22:13:31
【问题描述】:
我尝试通过以下方式为我的 PageFactory 创建存储:
private static Map<Class<? extends BasePage>, ? extends BasePage> pageStore = new HashMap<>();
@SneakyThrows
public <T extends BasePage> T getPage(Class<T> pageClazz) {
T t = pageClazz.getDeclaredConstructor().newInstance();
pageStore.put(pageClazz, t);// <---- here is compilation error
return null;
}
所以,虽然? 和T 都从BasePage 扩展而来,但您可以从代码部分了解我在哪里出现编译错误:
Required type: capture of ? extends BasePage do not math to the generic
Provided: T
我是否必须将类型从 <? extend BasePage> 更改为 BasePage,或者我可以保存当前逻辑并以另一种方式转换我的对象?
【问题讨论】:
标签: java generics reflection