接下来我的问题是,我在 java 中有一个组件可以获取 Enum,但我需要将该组件与多个 ENUM 一起使用,这些枚举是相关的。
然后,我有两个下一个 ENUM
public enum Train{
A, B, C
}
public enum Bus{
L,U,V
}
该组件获得一个 ENUM,但我希望可以设置火车或公共(public)汽车,具体取决于先决条件
如果我选择 Bus set to 组件 Bus Enum,如果选择 Tran set Train enum
我的托盘带有下一个模式的界面:
public interface Transport(){}
public enum Bus implements Transport
publi enum Train implements Transport
但是不起作用,因为组件调用了枚举方法,并且只能设置枚举方法
我无法将 Enum 作为通用传递,因为我需要对在组件中设置的参数进行一些控制。
有什么想法吗?
最佳答案
以下是如何使用扩展 Enum
并实现 Transport
的泛型类型参数 T
来实现您想要的效果:
interface Transport {}
enum Bus implements Transport {
A, B, C
}
enum Train implements Transport {
L, U, V
}
public class Test<T extends Enum & Transport> {
private T transport;
Test(T transport) {
this.transport = transport;
// Can still use enum methods
System.out.println(this.transport.name());
System.out.println(this.transport.ordinal());
}
public static void main(String[] args) {
new Test(Train.L); // prints out "L", "0"
}
}
关于java - 如何创建抽象枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53955876/