Dre*_*son 8 java generics class hierarchy
如果我有一个方法MyClass
,如
setSuperClassList(List<Superclass>)
Run Code Online (Sandbox Code Playgroud)
......我应该能够这样做:
new MyClass().setSuperClassList(new ArrayList<Subclass>())
Run Code Online (Sandbox Code Playgroud)
看来这不会编译.为什么?
你只是在做泛型有点不对劲.添加该? extends
位,这将允许传入的列表包含SuperClass或其任何子类.
setSuperClassList(List<? extends Superclass>)
Run Code Online (Sandbox Code Playgroud)
这称为设置泛型的上限.
声明List<Superclass>
说List只能包含SuperClass
.这排除了任何子类.
归档时间: |
|
查看次数: |
9824 次 |
最近记录: |