我试图创建一个可以使用 Set 或 TIntHashSet 的抽象类。我想让它使用两个类都实现的 .contains 或 .addAll,但不幸的是我找不到共同的父类。
最佳答案
您无法使用继承来做到这一点,因为没有共同的祖先。
做到这一点的最佳方法是使用策略模式。您的抽象类包含:
SetInterfaceStrategy setInterface;
setInterface 在内部存储 Set 或 TIntHashSet 并公开您要使用的方法。在抽象对象中为其访问的集合类型设置正确的策略。
这与使用 TIntSetDecorator
的建议非常相似,但允许您进行更多控制,因此您可以尝试避免装箱和拆箱。
关于java - Java中的TIntHashSet和Set之间是否有共同的父类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29684596/