Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将子类实例分配给实现相同接口的枚举项?_Java - Fatal编程技术网

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()`?
}