繁体   English   中英

使用 Class<!--? extends Collection--> 作为方法签名

[英]Use Class<? extends Collection> as a method signature

在方法签名中,我需要一个参数,它是从 Collection(List、Set 等)扩展的任何 class 类型,因此我可以返回其中的任何一个。

为了尝试实现这一点,我确实使用了以下方法:

public Collection<T> method(Class<? extends Collection> collectionType) {
    // Do something...
}

但是,当我尝试像这样使用它时:

method(List.class);

出现以下错误:

Error: java: incompatible types: java.lang.Class<java.util.List> cannot be converted to java.lang.Class<java.util.Collection>

我确实在 Stackoverflow 中搜索了已经解决的答案,找到了这篇文章: Java - Class<? 扩展集合>

但这并不能帮助我理解错误。 我想我不理解通配符 (?) 的用法。

Class<? extends Collection> Class<? extends Collection>实际上是正确的。 我遇到的问题确实是指方法的返回类型,无法将Collection<T>转换为List<T>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM