我想创建一个包含一组项目的集合或集合。每个项目都实现了接口WeaponAccessory
。但是,我不希望两个具有相同WeaponAccessory
类型的项目。所以列表中永远不应该有两个抑制器或两个扩展磁体。
使这更清楚。假设M16类具有WeaponAccessories集合的实例变量。我如何保证此列表不包含同一类型的两个对象(两个抑制器,或两个扩展磁体)?所有附件(抑制器,扩展磁体等等)都是实现WeaponAccessory. So you can create a set or list of
WeaponAccessory的类,但我想要不同的类型。
我将如何写这篇文章?
答案 0 :(得分:1)
听起来你想要一个枚举而不是一个接口,这将使你能够将它融合成一个具有保证唯一性的集合。
public enum WeaponAccessory {
EXTENDED_MAGAZINE,
SUPPRESSOR,
THUMB_GRIP,
ANGLED_GRIP
}
使用它然后成为一个微不足道的事情,添加你想要的特定类型的武器配件到你想要的任何武器。我将这部分作为练习留给读者。