我目前正致力于让我的代码包含更多泛型。我遇到了一个编译错误,看起来相当复杂,但我可以减少到以下代码中的等效错误:
List< ;列表与LT;?>> a = new ArrayList< List< Integer>>();为什么会发生这种情况?我可以做些什么来解决这个问题?
解决方案具有不同类型参数的泛型类的实例不相关,即使 String 是 Object的子类型, List< String> 是不是 List< Object> 的子类型,即使 List< Integer> 是 List<> , List< List< Integer>> 不是的子类型List< List< $ p $也许你正在寻找
列表与LT ;?扩展List<>>> a = new ArrayList< List< Integer>>();
I am currently working on making my code contain more generics. I encountered a compilation error which looks quite complicated but which I was able to reduce to an equivalent error in the following code:
List<List<?>> a = new ArrayList<List<Integer>>();Why this happens? What can I do to fix it?
解决方案Instances of a generic class with different type parameters are not related, i.e. even though String is a subtype of Object, List<String> is not a subtype of List<Object>, and even though List<Integer> is a subtype of List<?>, List<List<Integer>> is not a subtype of List<List<?>>.
Perhaps you are looking for
List<? extends List<?>> a = new ArrayList<List<Integer>>();
更多推荐
为什么下面的java代码导致编译错误
发布评论