簡體   English   中英

TObjectIntMap(Trove 3)'int get(java.lang.Object key)'方法如何返回null? 是文檔錯誤嗎?

[英]TObjectIntMap (Trove 3) How can 'int get(java.lang.Object key)' method return null? Is it a documentation mistake?

我一直在研究Trove4j庫的文檔。 特別是TObjectIntMap接口。 根據庫的文檔,如果鍵不存在於地圖中,則get方法將返回null 我要參考的文檔可以在這里看到:

http://trove4j.sourceforge.net/javadocs/gnu/trove/map/TObjectIntMap.html#get%28java.lang.Object%29

在閱讀時(2014年2月27日),文檔中指出

int get(java.lang.Object key) ”返回指定鍵所映射到的值;如果此映射不包含該鍵的映射,則返回null。

我的問題是:

當返回類型為原始int時,該方法如何返回null 據我所知, Integer引用只能為null 它是文檔錯誤嗎?

您是對的, int不能為null。 因此,它們的文檔不一致。

為了使您更加了解Trove是如何構建的:它們具有用於數據結構的所有原始排列和對象排列的模板,因此可以理解,您無法使所有內容保持一致。 您應該將此報告給項目,以便他們可以解決。

要檢查鍵是否有值,您應該使用方法

public boolean containsKey(java.lang.Object key)

或(一種更具技巧性的解決方案)是檢查無條目的默認值:

gnu.trove.impl.Constants.DEFAULT_INT_NO_ENTRY_VALUE

如果您未覆蓋gnu.trove.no_entry.int屬性,則默認為0。

暫無
暫無

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

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