gpt4 book ai didi

java - List> 和 List 是 java 中不兼容的类型

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

<分区>

我没有得到这段代码以任何方式编译:

List<List> a = new ArrayList();
List<List<?>> b = new ArrayList();

a = b; // incompatible types
b = a; // incompatible types

java好像没有考虑ListList<?>在涉及泛型时是同一类型。

这是为什么呢?有什么好的出路吗?

上下文

有一个具有以下签名的库函数:public <T> Set<Class<? extends T>> getSubTypesOf(final Class<T> type) .这适用于作为参数传递的简单类型,但在泛型的情况下,结果未使用通配符进行参数化,导致 javac 提示原始类型。我想将结果作为 Set<Class<? extends GenericTypeHere<?>>> 传播到我的应用程序的其余部分但简单的转换并不像我预期的那样工作。

编辑:解决方案

感谢您的回答,这是我最终如何让它工作的:

@SuppressWarnings({"rawtypes", "unchecked"})
private static Set<Class<? extends GenericTypeHere<?>>> factoryTypes() {
return (Set) new Reflections("...").getSubTypesOf(GenericTypeHere.class);
}

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