簡體   English   中英

將哈希圖中的值與字符串進行比較

[英]Compare value in hashmap with string

我有一個這樣的哈希圖:

private HashMap<String, String> myMap = new HashMap<>();

所以,我在我的代碼中設置了一個鍵。 在我的情況下,key 的值可能會改變:如果條件為真,則獲取一些值,如果不是,則獲取其他值:

if (condition.isTrue) myMap.put("keyName", "stringValue");

最后,我想將此映射中的鍵值與字符串進行比較:

    if (myMap.get("keyName").equals("stringToCompare")) { 
      [... do something ...] 
    }

我的問題是:Java 向我返回一條警告消息:

方法調用“equals”可能會產生“NullPointerException”

當我運行該程序時,它無法正常工作。

消息說明了一切:

Method invocation 'equals' may produce 'NullPointerException'

這意味着,當你在一個可能是字符串的對象上應用equals時,有可能是null

當您從具有鍵keyName的映射中獲取值時,不能保證map.get(key)將為您提供對象的equals方法。 如果映射不包含該鍵的任何值,它將返回null ,因此NullPointerException警告。

我希望你得到你的答案。 但是關於程序沒有像您所說的那樣按預期工作,請提供一個最低限度的可重復示例,指出預期的內容以及您得到的內容。 然后我也會更新我對那部分的答案。

您可以在此處使用多種方法

1) map.getOrDefault("keyName","").equals("stringToCompare")
2) Objects.deepEquals(map.get("keyName"),"stringToCompare")
3) "stringToCompare".equals(map.get("keyName"))

用這個。

if(myMap.get("keyName") != null) {
    if(myMap.get("keyName").equals("stringToCompare")) {
        //do something...
    }
}

暫無
暫無

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

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