java中与铸造相关的问题
考虑以下代码:java中与铸造相关的问题,java,inheritance,casting,Java,Inheritance,Casting,考虑以下代码: public class ListDemo { List<Inner> inners; public ListDemo() { this.inners = new ArrayList<>(); } private void load(){ SomeClzz.load(inners); } private class Inner implements TestInterf
public class ListDemo {
List<Inner> inners;
public ListDemo() {
this.inners = new ArrayList<>();
}
private void load(){
SomeClzz.load(inners);
}
private class Inner implements TestInterface {
@Override
public void bla() {
System.out.println("Bla");
}
}
}
班级:
public class SomeClzz {
public static void load(List<TestInterface> test){
for (TestInterface testInterface : test) {
testInterface.bla();
}
}
}
公共类SomeClzz{
公共静空荷载(列表试验){
for(TestInterface TestInterface:test){
testInterface.bla();
}
}
}
我根据一个真实的示例创建了这个伪代码,因为我想看看是否可以隔离这个问题,并发现load方法有错误
为什么
SomeClzz.load(inners)
给出了一个错误,无法将inners从列表
转换为列表
简单的更改将使其正常工作:
public static void load(List<? extends TestInterface> test){
for (TestInterface testInterface : test) {
testInterface.bla();
}
}
publicstaticvoidload(列表它给出了什么错误?@nickb我编辑了这个问题以指定错误
public static void load(List<? extends TestInterface> test){
for (TestInterface testInterface : test) {
testInterface.bla();
}
}