Java 如何将子类实例分配给实现相同接口的枚举项?
我可能可以让枚举包含对Java 如何将子类实例分配给实现相同接口的枚举项?,java,Java,我可能可以让枚举包含对a实例的引用,而不是实现它,但这并不理想。不。这不能做到,因为C和B完全不同,根本不相关 只有父类引用才能保存子类对象。B&C没有这种关系。所以,这是不可能的 您不能按照描述的方式执行,但可以将B的实例传递给enum声明。所有这些都是为了说。。。你为什么还要这样做?您试图实现什么?枚举无法扩展另一个类(因为它已经扩展了enum)。但听起来你可能有一个问题。请解释一下你真正想要的是什么。我用A作为标签。但我有一些特殊情况(B)与一些逻辑。我使用一个类来封装所有可能的a值,包括
a
实例的引用,而不是实现它,但这并不理想。不。这不能做到,因为C和B完全不同,根本不相关
只有父类引用才能保存子类对象。B&C没有这种关系。所以,这是不可能的 您不能按照描述的方式执行,但可以将B
的实例传递给enum声明。所有这些都是为了说。。。你为什么还要这样做?您试图实现什么?枚举无法扩展另一个类(因为它已经扩展了enum
)。但听起来你可能有一个问题。请解释一下你真正想要的是什么。我用A作为标签。但我有一些特殊情况(B)与一些逻辑。我使用一个类来封装所有可能的a值,包括B。这很好。我试着用一个枚举来交换它,对于已知的、有限的元素集来说,它似乎更适合,带有开关警告等等。对吧!谢谢不知怎的,我产生了一种错觉,C是A,而C是A。
interface A {}
class B implements A{}
enum C implements A {
ITEM_A,
ITEM_B,
// Can I do something like `ITEM_C = new B()`?
}