這是在創建接口/ API的上下文中。最佳做法建議在界面中使用常規而不是特定類型 - 例如, Map
而不是HashMap
。最佳做法還建議寧願使用不可變類型而不使用可變類型。不變性和一般與特定類型
因此同時考慮這些建議(和撇開關於性能/內存佔用,第三方的庫/依賴性和便利性/功能問題)應該在一個公共接口看起來像這樣
public List<SomeClass> someMethod(...)
的方法
或者更確切地說,本
public ImmutableList<SomeClass> someMethod(...)
如果返回的List保證是不可變的,它應該看起來像2),否則它應該看起來像1)。什麼是不可變列表btw?如果我不能添加它,它真的是一個List? –
第一個......請注意,不可變的_collection_並不意味着_elements_的不可變性;它只是意味着你不能改變集合本身(替換/刪除/添加元素)。 – fge
@JohnRasch哦,好的,謝謝。我最近沒有真正考慮過或遇到過這個概念。 –