我大大简化了我的问题.这是它的读法.
我试图弄清楚为什么以下代码无法编译:
List<AnonType<AnonType<?>>> l = new ArrayList<AnonType<AnonType<?>>>();
l.add( new AnonType<AnonType<String>>() );
Run Code Online (Sandbox Code Playgroud)
哪里
public class AnonType<T> {
T a;
List<T> b;
}
Run Code Online (Sandbox Code Playgroud)
编译器错误表示add不适用于给定的参数.OTOH,以下代码只有1级嵌套通配符完美编译:
List<AnonType<?>> l = new ArrayList<AnonType<?>>();
l.add( new AnonType<String>() );
Run Code Online (Sandbox Code Playgroud)