在 Java 中,TIntHashSet 和 Set 之间是否有一个共同的父类



我试图创建一个可以使用Set或TIntHashSet的抽象类。我想让它使用两个类实现的 .contains 或 .addAll,但不幸的是我找不到一个共同的父类。

你不能使用继承来做到这一点,因为没有共同的祖先。

执行此操作的最佳方法是使用策略模式。您的抽象类包含:

SetInterfaceStrategy setInterface;

setInterface 在内部存储 Set 或 TIntHashSet,并公开要使用的方法。在抽象对象中为它所访问的集合类型设置正确的策略。

这与使用TIntSetDecorator的建议非常相似,但允许您进行更多控制,因此您可以尝试避免装箱和拆箱。

否,但您可以使用TIntSetDecoratorTIntHashSet视为Set<Integer>

最新更新