我有一个多个枚举正在实现的接口(interface),即
public interface MinorCodes {
public abstract int code();
public abstract String description();
}
public enum IdentityMinorCodes implements MinorCodes {
IDENTITY_UPLOAD_PICTURE_CODE(1, "Error while trying to upload a picture."),
}
现在我想要一个自定义注释,它的值类型是这些具体枚举值之一,即
public @interface PokenService {
MinorCodes[] exceptions();
}
但是我当然不能在这里返回接口(interface)。
有人知道这个问题的任何解决方案或解决方法吗?
提前致谢。
最佳答案
您可以创建一个附加枚举来包装所有 MinorCodes 枚举值:
public enum MinorCodesWrapper {
IDENTITY_UPLOAD_PICTURE_CODE(IdentityMinorCodes.IDENTITY_UPLOAD_PICTURE_CODE),
SOME_CODE(AnotherMinorCodes.SOME_CODE);
private final MinorCodes _wrapped;
MinorCodesWrapper(MinorCodes wrapped) {
_wrapped = wrapped;
}
public MinorCodes getWrapped() {
return _wrapped;
}
}
public @interface PokenService {
MinorCodesWrapper[] exceptions();
}
不漂亮,但有效;)
关于java - 抽象枚举一个注解属性类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1791228/