下面的代码在“返回列表”中引发异常;与typemismatch。它本来以为没有。
public class Teste {
public <S extends TestPai> S getList(){
TestPai list = new TesteFilho();
return list;
}
}
class TesteFilho implements TestPai{
}
interface TestPai{
}
我找到了解决方案,像这样
public class Teste {
@SuppressWarnings("unchecked")
public <S extends TestPai> S getList(){
TestPai list = new TesteFilho();
return (S)list;
}
}
class TesteFilho implements TestPai{
}
interface TestPai{
}
但这听起来很奇怪,因为我还有其他代码在执行之前就已经编译过了。
-我在以jre1.7.0_51作为执行环境的Windows机器中使用eclipse IDE。
有人可以帮助使其按预期运行(在第一个代码中)。
提前致谢。
最佳答案
所有类型都是固定的!您根本没有使用type参数。所以最简单的方法就是
public TestPai getList(){
TestPai list = new TesteFilho();
return list;
}