我没有理解为什么这段代码会显示这个编译错误。
错误是:
Type mismatch: cannot convert from TestClass.Wrapper<List<capture#1-of ?>> to TestClass.Wrapper<List<?>>
代码如下。
package test.cls;
import java.util.List;
public class TestClass
{
static abstract class Wrapper<A>
{
public abstract A wrapped();
}
public static <A> Wrapper<A> wrap(final A val)
{
return new Wrapper<A>()
{
public A wrapped()
{
return val;
}
};
}
public static void main(final String[] args)
{
final List<?> list = null;
final Class<?> c = null;
final Wrapper<List<?>> wrapList = wrap(list); // Error here
final Wrapper<Class<?>> wrapC = wrap(c); // Error here
}
}