我试图将异常添加到一个Map中,其中包含字符串作为键,异常列表作为值,如下所示。我试图实现的是创建一个泛型方法,该方法可以接受一个以键作为字符串的Map和一个可以包含任何类型异常的列表,如果键是同一类型的,则将异常添加到该特定列表中。
public static void addToMap(Map<String,List<? extends Exception>> exceptionMap,String nodeKey ,Exception exception){
exceptionMap.computeIfAbsent(nodeKey ,K->new LinkedList<Exception>).add(exception);
注意:我可以将异常分别添加到两个不同的util方法…但是我希望它更通用一个单一的util方法,如上图所示。。。
我无法将这两个不同的例外添加到泛型util方法中,我不知道哪里出错了…非常感谢您的帮助
1条答案
按热度按时间dvtswwa31#
你不应该在这里使用通配符。仅当您不关心确切的类型时才使用通配符。但在这里,您确实关心异常列表的确切类型。也就是说,这两个
???
必须相互兼容:最后一个参数不能是任何
Exception
,列表的类型不能是任何类型Exception
. 不能添加NullPointerException
一份IndexOutOfRangeExceptions
,你能吗?这两种类型是相关的。您应该在此处使用泛型: