簡體   English   中英

ImmutableMap和Map不兼容?

[英]ImmutableMap and Map are incompatible?

我正在按照本教程進行操作,以嘗試向基於我的dropwizard的API添加身份驗證。

我遇到的一個問題是,該教程到了我們需要編寫一個Authenticator類的地步,並使用以下代碼:

private static final Map<String, Set<String>> VALID_USERS = ImmutableMap.of(
    "guest", ImmutableSet.of(),
    "user", ImmutableSet.of("USER"),
    "admin", ImmutableSet.of("ADMIN", "USER")
);

據我所知,這是一種設置某些角色的方式,以便以后在限制對某些端點的訪問時可以使用它們,但是我在此代碼上遇到了錯誤:

Incompatible Types

Required : Map <path to Map class here>
Found : ImmutableMap <path to ImmutableMap class here>

現在,我意識到它們是不同的類型,並且我以前使用過地圖,但是ImmutableMaps對我來說是新領域,因此我有點依賴於本教程中的這段代碼。

如果有人能讓我知道如何修復它,那就太好了,而且如果您能解釋為什么它也損壞了,那就更好了! 謝謝!

在這種情況下<String, ImmutableSet<String>> ImmutableMap.of將推斷<String, ImmutableSet<String>>泛型類型參數。 您可能必須明確指定args類型:

private static final Map<String, Set<String>> VALID_USERS = ImmutableMap.<String, Set<String>>of(
    "guest", ImmutableSet.of(),
    "user", ImmutableSet.of("USER"),
    "admin", ImmutableSet.of("ADMIN", "USER")
);

暫無
暫無

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

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