簡體   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