Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在枚举类型中受保护的变量意味着什么?_Java_Java 9 - Fatal编程技术网

Java在枚举类型中受保护的变量意味着什么?

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也允许它

在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也允许它。如果我没有弄错的话,Protected也允许包访问。不回答你的问题,只是说它完全回答了问题。这个问题不能重复。请去掉这个标记。我问的是枚举类型。@Makoto这是可能的,因为Java 5引入了
enum
类型。忽略这是一个
enum
,您可以编写
/*not public*/class Abc{static protected int foo=4;}
具有过时的
protected
修饰符,因为Java 1.0…对变量使用
protected
修饰符是正确的选择吗?也许没有人在
enum
中为变量使用此修饰符。对吗?如果它符合您的要求,那么它是一个正确的选项。:-)我同意,从风格上来说,包私密可能更好。