gpt4 book ai didi

Java 泛型 : creating collections of class objects extending Throwable

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:03 24 4
gpt4 key购买 nike

为什么第一行可以,第二行不行?

Collection<Class<? extends Throwable>> exs =
new ArrayList<Class<? extends Throwable>>() {{ add(MyOwnException.class); }};
Collection<Class<? extends Throwable>> exs = Arrays.asList(MyOwnException.class);

最佳答案

错误的原因是 java 推断出错误的类型,但您可以通过在调用类型化方法时指定类型来使其编译,无需强制转换 Arrays.asList() :

Collection<Class<? extends Throwable>> exs 
= Arrays.<Class<? extends Throwable>>asList(Exception.class); // compiles

在不指定类型的情况下,java 推断集合的元素类型为Class<Exception>不可分配给 Collection<Class<? extends Throwable>> .

记住泛型,如果 B延伸A , List<B> 扩展List<A> .

关于Java 泛型 : creating collections of class objects extending Throwable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12504190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com