收藏<?扩展 T> 与集合<T>
在尝试理解Spring MVC的概念之后,我遇到了我以前从未见过的表达方式。我试图自己弄清楚,但我看到使用和之间没有区别。我猜它只允许Book的扩展,但它也允许Book。所以挠挠那个。我尝试过使用谷歌,但自从?是谷歌中的通配符,它几乎不可能搜索。我已经搜索了stackoverflow以获取答案,但是有关此问题的所有问题(例如List<?扩展了MyType>并且<?扩展>Java语法)已经假定了.以下是最初引起我兴趣的代码:Collection<? extends Book>
Collection<? extends Book>
Collection<Book>
Collection<? extends T>
import java.util.ArrayList;
import java.util.Collection;
public class Book {
public static void main(String[] args) {
BookCase bookCase1 = new BookCase();
BookCase bookCase2 = new BookCase(bookCase1);
}
}
class BookCase extends ArrayList<Book> {
public BookCase() {
}
//acts same as public BookCase(Collection<Book> c) {
public BookCase(Collection<? extends Book> c) {
super(c);
}
}
有什么作用?它与 有何不同?<? extends T>
<T>
编辑:
后续问题:是否意味着扩展?BookCase extends ArrayList<Book>
BookCase
Book