[英]Java extends class as function argument
對java來說並不陌生,但這個問題困擾着我。 我想我沒有堅實的基礎。
假設A
, B
, C
和B extends A
和C extends A
我的問題是,如何定義方法f()
以便它可以將List<A>
, List<B>
和List<C>
作為參數?
使用上限通配符:
f(List<? extends A> list)
有關更多信息,請參閱Oracle的教程 。
請注意,這限制了您只能從方法體中的列表中取出內容; 你不能在列表上調用消費者方法:
A item = list.get(0); // OK.
list.add(new A()); // Not OK! list might be a List<B>.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.