Java 特定枚举是否可以具有属性

Java 特定枚举是否可以具有属性,java,enums,Java,Enums,这是一个一般性的问题,而不是一个具体的问题 我正在做一个项目,在这个项目中,我们得出了这样一个结论:将枚举用于我们称之为“操作”的东西可能是最明智的。我们有一个所谓的操作,它需要一个辅助属性“Roles”,但我不确定是否可以从枚举中获得一个值来具有辅助属性,而其他值没有 希望我的问题有意义,即使我没有任何代码xD是的,这是完全可能的,但是这取决于您希望如何处理从一个枚举到另一个枚举的字段缺失 这里有两个命题 使用异常 你可能想看看 enum TheEnum { WITHOUT_ROLE,

这是一个一般性的问题,而不是一个具体的问题

我正在做一个项目,在这个项目中,我们得出了这样一个结论:将枚举用于我们称之为“操作”的东西可能是最明智的。我们有一个所谓的操作,它需要一个辅助属性“Roles”,但我不确定是否可以从枚举中获得一个值来具有辅助属性,而其他值没有


希望我的问题有意义,即使我没有任何代码xD是的,这是完全可能的,但是这取决于您希望如何处理从一个
枚举到另一个
枚举的字段缺失

这里有两个命题

使用异常 你可能想看看
enum TheEnum {
    WITHOUT_ROLE, WITH_ROLE(() -> "boss");

    private Supplier<String> roleSupplier;

    TheEnum() {
        this(() -> {throw new NoRoleException();}); 
    }

    TheEnum(Supplier<String> roleSupplier) {
        this.roleSupplier = roleSupplier;
    }

    String getRole() {
        return roleSupplier.get();
    }
}
enum TheEnum {
    WITHOUT_ROLE, WITH_ROLE(() -> "boss");

    private String role;

    TheEnum() {
        this(null); 
    }

    TheEnum(String role) {
        this.role = role;
    }

    // The use of Optional is not mandatory, even more if you know how to handle nulls yourself and are not exposing this enum
    Optional<String> getRole() {
        return Optional.ofNullable(role);
    }
}