2011-05-11 73 views
2

MapMakermaximumSize在google番石榴圖書館被標記爲@Beta。這是一個非常有用的功能,當您將它用作緩存時設置最大大小,並且我想在生產代碼中使用它。從其他谷歌產品測試版的經驗可以相當穩固。任何人都知道爲什麼它是@BetaGoogle MapMaker maximumSize Beta?

+0

我的經驗是,你可以使用它** iff **你準備適應你的源代碼,當一個新的版本的庫出來了:二進制(甚至源代碼)兼容性是**不是用'@ Beta'功能保證的。 – 2011-05-12 06:58:18

回答

8

它在谷歌的生產中使用,並沒有關於API變化的即時計劃。有支持加權條目的共識,我們可能會繼續發展算法以更接近ConcurrentLinkedHashMap。在這種情況下,@Beta只是表示方法合約沒有正式設置。

+3

+1從馬口的詞;-) – 2011-05-12 06:59:35

1

javadoc

意味着一個公共API(公共類,方法或字段)受到不兼容的改變,或者甚至去除,在將來的版本。帶有這個註解的API可以免除其包含的庫所做的任何兼容性保證。

因此,這並不意味着它質量有問題,或者不適合生產使用,他們保留稍後更改的權利。

+0

你回答了@Beta是什麼,但沒有人知道它爲什麼在這裏使用@Beta,除了作者:) – 2011-05-12 02:26:53

0

如果您的項目是不打算嵌入其他人的應用程序的最終應用程序,那麼使用@Beta的任何內容都是完全安全的。 API可能會在以後更改,IMO運行的最大風險是您可能必須稍微更改代碼,因爲方法簽名已更改。

另一方面,如果您正在開發某種框架,您期望您的項目將位於許多客戶端的類路徑上,那麼您可能需要避免@Beta。你永遠不知道你的客戶是否會在類路徑中使用不同版本的番石榴 - 在這種情況下會發生不可預知的事情。

ColinD解釋了這個最佳位置:Best Way To Use Guava

編輯:嗯,是的,回答你爲什麼叫它@Beta具體的問題 - 它只是記錄這個事實,地圖製作工具MAXIMUMSIZE仍然受到在改變(這是而不是,該代碼被認爲是片狀,不穩定或不適合生產)