我有一个枚举类,如下所示:
public enum TargetingName {
CONTENT("Content", "Content Targeting"), TECHNOLOGY("Technology", "Technology Targeting");
private TargetingName(String textToSelect, String textDisplayed) {
this.textToSelect = textToSelect;
this.textDisplayed = textDisplayed;
}
private String textToSelect;
private String textDisplayed;
public String getTextDisplayed() {
return textDisplayed;
}
public String getTextToSelect() {
return textToSelect;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我没有在enum的构造函数中写private,它将默认吗?如果是,那有什么区别?如果否,那么如何制作默认构造函数?
在枚举声明中,没有访问修饰符的构造函数声明是私有的。
除了您需要写一个额外的单词,这没有什么区别。
我看到开发人员将private其变得更加明确(以强调您不能在枚举之外使用枚举构造函数这一事实)。我觉得没有必要。
如果我不
private使用enum的构造函数编写代码,它将使其默认吗?
如果“默认”是指private,则是。
如果“默认”是指package-private,否。无论是public也不protected是允许的。枚举构造函数始终为private。
如果枚举声明中的构造函数声明是公共的或受保护的,则是编译时错误(第6.6节)。
枚举构造函数不能是私有的。
在枚举声明中,没有访问修饰符的构造函数声明是私有的。
...
如果枚举声明中的构造函数声明是公共的或受保护的,则是编译时错误。
除了私有以外,没有其他理由:您不能手动创建枚举的新实例(这就是枚举的重点)。
如果需要创建实例,可以使用常规类。
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |