Java在枚举类型中受保护的变量意味着什么?
在Java 9中,我可以编写如下代码:Java在枚举类型中受保护的变量意味着什么?,java,java-9,Java,Java 9,在Java 9中,我可以编写如下代码: enum Abc { A, B, C; static protected int foo = 4; // what is the purpose of the protected variables like this in enum? } 我认为这毫无意义,因为我们无法继承或实现枚举 编辑:这个问题与相同,它的意思就是:只能从同一个包中的子类或类访问。您是对的,因为您不能继承该类,所以实际上它与包私有字段没有任何区别。Java8也允许它
enum Abc {
A, B, C;
static protected int foo = 4; // what is the purpose of the protected variables like this in enum?
}
我认为这毫无意义,因为我们无法继承或实现枚举
编辑:这个问题与相同,它的意思就是:只能从同一个包中的子类或类访问。您是对的,因为您不能继承该类,所以实际上它与包私有字段没有任何区别。Java8也允许它。如果我没有弄错的话,Protected也允许包访问。不回答你的问题,只是说它完全回答了问题。这个问题不能重复。请去掉这个标记。我问的是枚举类型。@Makoto这是可能的,因为Java 5引入了
enum
类型。忽略这是一个enum
,您可以编写/*not public*/class Abc{static protected int foo=4;}
具有过时的protected
修饰符,因为Java 1.0…对变量使用protected
修饰符是正确的选择吗?也许没有人在enum
中为变量使用此修饰符。对吗?如果它符合您的要求,那么它是一个正确的选项。:-)我同意,从风格上来说,包私密可能更好。