想象一下,我扩展了List接口,添加了一个方法,如下所示:
public interface MyList<E> extends List<E> {
<R super E> MyList<R> castTo(Class<R> klass);
}
为什么这是非法的?我只是以错误的方式做这件事,因为你一定能够做到这一点。
例如我想做类似以下的事情:
MyList<? extends X> someList = // list from somewhere
MyList<X> xs = someList.castTo(X.class)