TIntHashSet 和 Java 中的 Set 之间是否有共同的父 class?
Is there a common parent class between TIntHashSet and Set in Java?
我试图创建一个可以使用 Set 或 TIntHashSet 的抽象 class。我想让它使用 classes 实现的 .contains 或 .addAll 但不幸的是我找不到共同的父 class.
否,但您可以使用 TIntSetDecorator
将 TIntHashSet
视为 Set<Integer>
。
你不能使用继承来做到这一点,因为没有共同的祖先。
最好的方法是使用策略模式。您的摘要 class 包含:
SetInterfaceStrategy setInterface;
setInterface内部存储了Set或TIntHashSet,并公开了你要使用的方法。在您的抽象对象中为其访问的集合类型设置正确的策略。
这与使用 TIntSetDecorator
的建议非常相似,但允许您进行更多控制,因此您可以尝试避免装箱和拆箱。
我试图创建一个可以使用 Set 或 TIntHashSet 的抽象 class。我想让它使用 classes 实现的 .contains 或 .addAll 但不幸的是我找不到共同的父 class.
否,但您可以使用 TIntSetDecorator
将 TIntHashSet
视为 Set<Integer>
。
你不能使用继承来做到这一点,因为没有共同的祖先。
最好的方法是使用策略模式。您的摘要 class 包含:
SetInterfaceStrategy setInterface;
setInterface内部存储了Set或TIntHashSet,并公开了你要使用的方法。在您的抽象对象中为其访问的集合类型设置正确的策略。
这与使用 TIntSetDecorator
的建议非常相似,但允许您进行更多控制,因此您可以尝试避免装箱和拆箱。