簡體   English   中英

如何在Java中將LinkedHashSet轉換為EnumSet?

[英]How can I convert a LinkedHashSet to an EnumSet in Java?

我正在嘗試創建一個bean來將LinkedHashSet轉換為EnumSet 這是必需的,因為Neo4j需要針對這種情況的轉換類。 到目前為止,我已經實現了這個類:

public class LinkedHashSetToEnumSet implements Converter<LinkedHashSet<Access>, EnumSet<Access>> {

    @Override
    public EnumSet<Access> convert(LinkedHashSet<Access> h) {
        EnumSet<Access> e = new EnumSet<Access>(); // error here
        // Somehow do a for loop to add all of e to h?
        return e;
    }

} 

我得到一個錯誤,我在// error here有注釋行// error here其中錯誤是:

Cannot instantiate the type EnumSet<Resource.Access>

我在這里缺少一些簡單的東西來創建一個EnumSet嗎?

編輯:

是否可以將HashSet轉換為EnumSet

錯誤很明顯: EnumSet沒有構造函數,創建一個的唯一方法是使用類中的靜態方法來接收實際的枚舉值。 如果您需要使用LinkedHashSet所有元素創建EnumSet ,請嘗試以下操作:

public EnumSet<Access> convert(LinkedHashSet<Access> h) {
    return EnumSet.copyOf(h)
}

我認為沒有必要為此設置類和方法,只需在必要時調用copyOf()並將任何枚舉值Collection作為參數傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM