我试图创建一个可以使用Set或TIntHashSet的抽象类。我想让它使用两个类实现的.contains或.addAll但不幸的是我无法找到一个共同的父类。
答案 0 :(得分:2)
你不能使用继承来做这件事,因为没有共同的祖先。
执行此操作的最佳方法是使用策略模式。您的抽象类包含:
SetInterfaceStrategy setInterface;
setInterface在内部存储Set或TIntHashSet,并公开您要使用的方法。在抽象对象中为正在访问的集合类型设置正确的策略。
这与使用TIntSetDecorator
的建议非常相似,但允许您更多控制,因此您可以尝试避免装箱和拆箱。
答案 1 :(得分:0)
不,但您可以使用TIntSetDecorator
将TIntHashSet
视为Set<Integer>
。