我有这样的方法:
<T extends ImportedGroupTxtContact> Importer<T> createImporter(Class<T> classToImport)
在方法主体中可以:
ParseResult<? extends ImportedGroupTxtContact, ?> parseResult = new ParseResult<ImportedGroupTxtContact, ChildContactField<?>>();
但这不是:
ParseResult<T, ?> parseResult = new ParseResult<ImportedGroupTxtContact, ChildContactField<?>>();
这对我来说毫无意义,因为
T extends ImportedGroupTxtContact
具有与? extends ImportedGroupTxtContact
相同的上限。到底是什么问题? 最佳答案
T
扩展ImportedGroupTxtContact
。因此,它可以是ImportedGroupTxtContact
的任何子类。让我们用Fruit
代替它。苹果延长水果。但是你做不到
Basket<Apple> basket = new Basket<Fruit>();
实际上,
Basket<Apple>
仅接受苹果,而Basket<Fruit>
接受任何种类的水果。