[英]How to annotate an EnumMap with an Enum as a value in hibernate?
[英]How to init EnumMap which uses another map as value
private static EnumMap<Edition, ListMultimap<KeyClass, ValueClass>>
valueByKeyPerEdition = Collections.synchronizedMap(
new EnumMap<Edition, ListMultimap<KeyClass, KeyClass>>());
我想初始化一個線程安全的地圖。 首先,我嘗試了上面的init函數,但是它說no suitable constructor found for EnumMap
。 然后我嘗試添加Edition.class
,得到new EnumMap<Edition, ListMultimap<KeyClass, KeyClass>>());
,它仍然無法正常工作。 錯誤消息是incompatible types: no instance(s) of type variable(s) K,V exist so that Map<K,V> conforms to EnumMap<Edition, ListMultimap<KeyClass, ValueClass>>
。
有人可以幫忙嗎? 提前致謝! 我知道Generic的基礎知識,但對應該如何valueByKeyPerEdition
感到困惑。
Collections.synchronizedMap()
返回委托給其參數的另一個Map
實現,因此您需要將字段類型更改為Map
而不是EnumMap
:
private static Map<Edition, ListMultimap<KeyClass, ValueClass>> valueByKeyPerEdition =
Collections.synchronizedMap(new EnumMap<>(Edition.class));
請注意,同步外部映射並不能確保其內容的線程安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.