6
適當的方式我沿着子類番石榴的ImmutableSet
class Receipt
{
private Set<Order> orders;
public Receipt(Set<Order> orders)
{
this.orders = ImmutableSet.copyOf(orders)
}
}
這使我受益匪淺行的類。
然而,因爲我面對一些類型擦除&持久性問題,我想現在介紹
class OrderSet extends Set<Order> {}
形式很顯然,我不能延伸Set<Order>
,因爲它是一個接口。我想保持我的實現不可變。但是,我不能延伸ImmutableSet<Order>
,作爲文檔狀態:
注:雖然此類不是終點,它不能被包外部的子類 因爲它沒有公開或受保護的構造函數。因此,這種類型的實例保證是不可變的。
我可以用成分,給人OrderSet
的ImmutableSet
後備收集和委派所有Set
方法吧。但是,這看起來過分了。
有沒有另一種方法可以在這裏實現一個非泛型的子類?
此外,請記住讓您的IDE爲您輸入委派方法。在eclipse中,Source-Generate Delegated Method – 2012-02-02 14:49:09
這是_Exactly_什麼是'ForwardingSet'及其朋友。 – 2012-02-02 15:15:23
此外,@PabloGrisafi,您的評論是錯誤的。您應該重寫'ForwardingSet.delegate()',並且不要覆蓋其行爲未被更改的任何方法。 – 2012-02-02 19:03:19