2015-03-02 7 views
1

Я использую библиотеку находки для создания хэша-картTObjectIntMap.get() Retruns 0, если нуль Trove

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

Класса я использую TObjectIntMap, в котором я должен был использовать функцию получения. Вопрос заключается в том, что получить возвращает 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- Zero: возврат объектов FeatureMap.get («B») равен нулю вместо нуля.

Я проверил их документацию по ссылке ниже, и это была ошибка, которую они решили. Таким образом, получите фактический возврат нуля вместо нуля, потому что int не может быть нулевым.

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

Теперь мой вопрос: как дифференцировать нуль и нуль в этом случае. Является ли их способ обойти эту проблему.

Заранее спасибо

ответ

1

Попробуйте их метод containsKey. Если значение возвращается 0, используйте этот метод, чтобы проверить, содержит ли карта ключ - если это так, то значение ключа действительно равно 0. Если это не так, то ключ не установлен.

+0

Да, это сработало! Спасибо alot –

+0

Но мне действительно нужно ckeck, если возвращает ноль. Я могу проверить только «содержит ключ», правильно? –

+0

И я действительно принял ответ :) –

 Смежные вопросы

  • Нет связанных вопросов^_^