[英]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.