在Java泛型中,List <?超级字符串>意思?

Mar*_*hin 11 java generics

任何人都可以解释这两者如何编译和如何工作?

List<? super String> list = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

据我所知,它的实现需要是String列表还是String为超类的对象列表?我错过了什么吗?

Pét*_*rök 23

不(即是的,你错过了一些东西:-).<? super String>是任何类,这是一个超类String(包括String自身).(在这种情况下,唯一合适的类是Object.)

你所描述的将是什么<? extends String>(在这个特定的情况下,它不会是非常有用Stringfinal,因此它没有子类).


NPE*_*NPE 5

<? super String>接受String和任何超类

不要与以下内容混淆:

<? extends String>接受String和任何子String(因为is ,所以没有任何子类final)。