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。如果不包含,则键未设置。