我有以下代码:Java方法返回类的实例<T延伸Somethng>
public <T extends Scrapper> Class<T> getScrapper() {
return MyScrapper.class;
}
MyScrapper
是实现Scrapper
接口的类。为什么这不起作用?在JDK7中收到以下错误:
error: incompatible types
required: Class<T>
found: Class<MyScrapper>
where T is a type-variable:
T extends Scrapper declared in method <T>getScrapper()
P.S. 我诚实地尝试搜索整个30-40分钟。
更新: 如果我声明方法为public Class<? extends Scrapper> getScrapper() {
它的工作原理。但我仍然不明白为什么原始声明没有编译。它出什么问题了?
如果你只是将设置为 –
ControlAltDel
2012-04-24 22:50:13
,你会发现它应该不起作用。但我尝试了其他的东西,它的工作。我更新了问题 – 2012-04-24 22:56:07
是的,我已经很累了。我的意思是改变为Scrapper(未参数化),但是它使用类参数进行工作,并且如果这符合您的要求,则正确使用 – ControlAltDel 2012-04-24 22:58:21