泛型如何创建类继承人列表?JAVA
伙计们。我的问题很简单。你能帮我做什么吗? 我试图这样编写smth,但编译时出错
List<? extends Exception> exceptions = new ArrayList<BaseIRPMException>();
exceptions.add(new BaseException("Some text ");
你可以在下面搜索框中键入要查询的问题!
伙计们。我的问题很简单。你能帮我做什么吗? 我试图这样编写smth,但编译时出错
List<? extends Exception> exceptions = new ArrayList<BaseIRPMException>();
exceptions.add(new BaseException("Some text ");
# 1 楼答案
List<? extends Exception>
意味着你有List
某种类型的异常,但你不知道什么类型的异常因为您不知道需要插入什么类型的异常,所以无法将某种特殊类型的异常传递给列表
一个
List<? extends Exception>
可以是一个List<IllegalArgumentException>
,你不能将一个NullPointerException
添加到这样的列表中但是,您可以从这样的列表中检索
Exception
由于编译器知道
List
包含某种Exception
元素,因此可以调用.get()
并将返回值赋给Exception
类型的变量,但不能将其赋给子类型,因为编译器不知道实际的子类型如果要创建异常的子类型列表,可能需要使用
List<Exception>
,因为它也允许子类型