我想知道是否有一种方法可以用byte-buddy创建这样的枚举:
public enum EnumWithAbstractMethods {
A {
@Override
String greet() {
return "hello A";
}
},
B {
@Override
String greet() {
return "hello B";
}
},
C {
@Override
String greet() {
return "hello C";
}
};
abstract String greet();
}我已经尝试过创建枚举的字节伙伴API,但我发现我无法做到这一点。
发布于 2021-07-30 22:28:55
您通常不会创建子类,而是使用DynamicType.Builder::makeEnumeration并实现方法并动态确定结果。例如,您可以使用MethodDelegation截获一个采用@This Enum<?>参数的dispatcher。然后打开序数并返回您考虑的值。
当然,您也可以创建四个类并手动实现枚举语义。
https://stackoverflow.com/questions/68578018
复制相似问题