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