有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

泛型如何创建类继承人列表?JAVA

伙计们。我的问题很简单。你能帮我做什么吗? 我试图这样编写smth,但编译时出错

List<? extends Exception> exceptions = new ArrayList<BaseIRPMException>();
exceptions.add(new BaseException("Some text ");

共 (1) 个答案

  1. # 1 楼答案

    List<? extends Exception>意味着你有List某种类型的异常,但你不知道什么类型的异常

    因为您不知道需要插入什么类型的异常,所以无法将某种特殊类型的异常传递给列表

    一个List<? extends Exception>可以是一个List<IllegalArgumentException>,你不能将一个NullPointerException添加到这样的列表中

    但是,您可以从这样的列表中检索Exception

    由于编译器知道List包含某种Exception元素,因此可以调用.get()并将返回值赋给Exception类型的变量,但不能将其赋给子类型,因为编译器不知道实际的子类型

    如果要创建异常的子类型列表,可能需要使用List<Exception>,因为它也允许子类型