Java 枚举类型中受保护的变量是啥意思? [复制]
Posted
技术标签:
【中文标题】Java 枚举类型中受保护的变量是啥意思? [复制]【英文标题】:Java what does a protected variable mean in enum type? [duplicate]Java 枚举类型中受保护的变量是什么意思? [复制] 【发布时间】:2018-08-26 20:44:03 【问题描述】:在 Java 9 中,我可以编写如下代码:
enum Abc
A, B, C;
static protected int foo = 4; // what is the purpose of the protected variables like this in enum?
我认为这没有意义,因为我们不能继承或实现枚举。
编辑:这个问题和Why are protected members allowed in final java classes?一样
【问题讨论】:
Java 8 也允许这样做。 如果我没记错的话,Protected 还允许访问包。不回答你的问题,只是说。 @MadPhysicist 它正好回答了这个问题。 这个问题不能重复。请删除此标记。我在问枚举类型。 @Makoto 从 Java 5 开始就有可能,当时引入了enum
类型。忽略这是一个enum
的事实,您可以编写具有过时的protected
修饰符的/* not public */ class Abc static protected int foo = 4;
,因为Java 1.0...
【参考方案1】:
这就是它的含义:只能从同一个包中的子类或类访问。你是对的,因为你不能继承这个类,它实际上与包私有字段没有任何不同。
【讨论】:
对变量使用protected
修饰符是正确的选择吗?也许没有人在enum
中将这个修饰符用于变量。对吗?
如果它做你想做的,这是一个正确的选择。 :-) 我同意在风格上,包私有可能更好。以上是关于Java 枚举类型中受保护的变量是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章