[英]TObjectIntMap (Trove 3) How can 'int get(java.lang.Object key)' method return null? Is it a documentation mistake?
[英]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.