【问题标题】: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...

标签: java java-9


【解决方案1】:

这就是它的含义:只能从同一个包中的子类或类访问。你是对的,因为你不能继承这个类,它实际上与包私有字段没有任何不同。

【讨论】:

  • 对变量使用protected 修饰符是正确的选择吗?也许没有人在enum 中将这个修饰符用于变量。对吗?
  • 如果它做你想做的,这是一个正确的选择。 :-) 我同意在风格上,包私有可能更好。
猜你喜欢
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2013-07-27
  • 2017-01-27
  • 2016-09-15
  • 2012-01-28
相关资源
最近更新 更多