gpt4 book ai didi

java - 在单独的文件中为每个枚举定义方法

转载 作者:行者123 更新时间:2023-11-29 09:05:27 24 4
gpt4 key购买 nike

我正在寻找一种能够为每个枚举实例定义方法的方法。我们都知道这个页面底部的代码构造。

我正在寻找的区别是能够在编译时验证的单独文件中为每个枚举定义一个或多个抽象方法。这意味着如果有人要添加另一个枚举实例,我会得到一个编译时错误,而不是运行时错误,这是我在本页底部的构造中得到的。

请求的原因是在我正在查看的某些代码中有许多方法应该为每个枚举定义但实际上与枚举定义无关所以我想将它们放在单独的文件中但不会丢失解决此问题的“标准”方法的好处。

public enum MyEnum {
X {
public void calc(Outer o) {
// do something
}
},
Y {
public void calc(Outer o) {
// do something
}
};

// abstract method
abstract void calc(Outer o);

最佳答案

考虑以下代码:

interface Delegate{
void calc();
}

enum TestEnum {

EnumValue1(new Delegate() {
@Override
public void calc() {

}
}),

EnumValue2(new Delegate() {
@Override
public void calc() {

}
});

private Delegate delegate;

TestEnum(Delegate d){
this.delegate = d;
}

public Delegate getDelegate() {
return delegate;
}
}

public class Test {
public static void main() {
TestEnum.EnumValue1.getDelegate().calc();
TestEnum.EnumValue2.getDelegate().calc();
}
}

关于java - 在单独的文件中为每个枚举定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15312168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com