簡體   English   中英

如果為null,TObjectIntMap.get()返回0

[英]TObjectIntMap.get() returns 0 if null Trove

我正在使用trove庫來創建哈希映射

http://trove.starlight-systems.com/ 

我正在使用的類是TObjectIntMap,必須在其中使用函數get。 問題是,如果有兩種情況,get返回0

1-如果指定鍵的值為零

2-如果密鑰不存在

例如下面的代碼

TObjectIntMap<String> featuresMap = new TObjectIntHashMap<String>();

        if(String.valueOf(featuresMap.get("B")) == null)
            System.out.println("NULL");
        else 
            System.out.println("NotNull");


        System.out.println(featuresMap.get("B"));

該程序將打印以下內容

1- NotNull:因為它為零。 盡管鍵“ B”尚未設置

2-零:featureMap.get(“ B”)的返回值為零,而不是null。

我在下面的鏈接中檢查了他們的文檔,這是他們解決的錯誤。 因此,由於int不能為null,因此get實際上返回零而不是null。

https://bitbucket.org/robeden/trove/issue/43/incorrect-javadoc-for-tobjectintmapget

現在我的問題是:在這種情況下如何區分零和空值。 他們有什么辦法解決這個問題。

試試他們的containsKey方法。 如果值返回0,則使用該方法檢查地圖是否包含鍵-如果包含,則鍵的值確實為0。如果不包含,則未設置鍵。

暫無
暫無

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

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