当前位置: 首页 > 知识库问答 >
问题:

带有下界通配符的编译错误

傅花蜂
2023-03-14

考虑以下示例

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)。

为什么在上述情况下编译器会显示编译错误?

共有2个答案

赏彭薄
2023-03-14
热门标签
范书
2023-03-14
相关问题
 类似资料:
  • 的类型应该是什么?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行相同的问题。