考虑以下示例:
public static void main(String... args) {
List<? super IOException> exceptions = new ArrayList<Exception>();
exceptions.add(new Exception()); // Compile Error
exceptions.add(new IOException());
exceptions.add(new FileNotFoundException());
}
我知道下界通配符接受通配符中给定类的所有超类(这里是IOException)。
为什么在上述情况下编译器会显示编译错误?
的类型应该是什么?Eclipse建议使用,但我试图获得更具体的信息。
我不明白为什么会出现这些编译错误: 1: 类型列表中的add(capture#1-of?extends Exec.Bird)方法不适用于参数(Exec.Sparrow) 2: 方法添加(捕获#2-of?扩展Exec.Bird)类型列表中的参数(Exec.鸟)
当构造函数参数使用 val 声明时,下面的代码失败 作品: 不工作: 编译器给出错误: Scala编译器中的错误:类型不匹配;找到:java.lang.Object必需:array[java.lang.Object] 而不能给出行号。
现在我正在尝试构建一个(灵活的)列表,并向其中添加不同类型的对象。 我可以将的实例添加到。但是,当我试图将或的实例添加到同一个列表中时,会出现编译错误。是否足够灵活,可以使用或其超级类的任何实例?和在层次结构树中位于较高位置。为什么我不能将这些实例添加到列表中?
null 为什么我不能在MyList中添加对象。因为如果我们使用super,这意味着这个列表可以包含在Java类的继承制度中等于或高于number的对象。因此应该按照该语句在列表中添加新的Object()。 多谢了。
null 编译,我真的不明白为什么。基本上与第1行相同的问题。是的超类,如何将超类的成员放入此中? 编译。与第1行相同的问题。