我一直在阅读Sybex的Java 8 OCP书籍,我似乎无法理解为什么第三行不能编译。
public static void main(String[] args) {
List<? super IOException> exceptions = new ArrayList<Exception>();
exceptions.add(new Exception()); // DOES NOT COMPILE
exceptions.add(new IOException());
exceptions.add(new FileNotFoundException());
}
答案 0 :(得分:1)
Exception
在IOException
和IOException
的情况下不会从FileNotFoundException
继承。
所以hierarchy是:
Exception
IOException
FileNotFoundException
因此,FileNotFoundException
是IOException
,但Exception
不是。