【发布时间】:2018-08-14 09:16:23
【问题描述】:
我有一些通用代码:
T1<T1<T1<?>>> v1 = null;
T1<T1<?>> v2 = v1;
我得到这个错误:
incompatible types: T1<T1<T1<?>>> cannot be converted to T1<T1<?>>
为什么我不能在这里分配?
如果是非嵌套通配符,一切正常:
T1<T1<?>> v1 = null;
T1<?> v2 = v1;
没有这样的问题。
T1的定义
class T1<T> { }
【问题讨论】:
-
您打算通过创建这样的 3 级嵌套来解决的真正问题是什么?
-
是简化的例子。在实际应用中,我在每个级别都有不同的类,其中一些有多个通用参数。
-
我很确定您的请求中有一个很好的重复问题,但是很遗憾,我现在找不到它;-)
-
这样的事情非常接近你的要求:stackoverflow.com/q/26766704 但从技术上讲,这也是一个骗局:stackoverflow.com/q/2745265 长话短说:你需要
T1<? extends T1<?>> v2 = v1;