TObjectIntMap.get() returns 0 如果为空
TObjectIntMap.get() returns 0 if null Trove
我正在使用 trove 库创建哈希映射
http://trove.starlight-systems.com/
我正在使用的 class 是 TObjectIntMap,我必须在其中使用函数 get。
问题是如果两个案例
得到 returns 0
1-如果指定键的值为零
2-如果key不存在
例如下面的代码
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:因为它得到零。虽然key"B"还没有设置
2- 零:featuresMap.get("B") 的 return 为零而不是空值。
我在下面的 link 中查看了他们的文档,他们解决了一个错误。所以实际上得到 return 零而不是 null 因为 int 不能为 null。
https://bitbucket.org/robeden/trove/issue/43/incorrect-javadoc-for-tobjectintmapget
现在我的问题是:在这种情况下如何区分零和 Null。他们有办法解决这个问题吗?
试试他们的 containsKey 方法。如果值返回 0,使用该方法检查映射是否包含键 - 如果包含,则键的值确实为 0。如果不包含,则键未设置。
我正在使用 trove 库创建哈希映射
http://trove.starlight-systems.com/
我正在使用的 class 是 TObjectIntMap,我必须在其中使用函数 get。 问题是如果两个案例
得到 returns 01-如果指定键的值为零
2-如果key不存在
例如下面的代码
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:因为它得到零。虽然key"B"还没有设置
2- 零:featuresMap.get("B") 的 return 为零而不是空值。
我在下面的 link 中查看了他们的文档,他们解决了一个错误。所以实际上得到 return 零而不是 null 因为 int 不能为 null。
https://bitbucket.org/robeden/trove/issue/43/incorrect-javadoc-for-tobjectintmapget
现在我的问题是:在这种情况下如何区分零和 Null。他们有办法解决这个问题吗?
试试他们的 containsKey 方法。如果值返回 0,使用该方法检查映射是否包含键 - 如果包含,则键的值确实为 0。如果不包含,则键未设置。