在Java枚举中使用lombok @Getter注解[重复]。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Java枚举中使用lombok @Getter注解[重复]。相关的知识,希望对你有一定的参考价值。
我试图使用一个枚举作为地图,从alpha-2国家代码中检索国家名称。我有一个这样的枚举类。
public enum Country {
AF("Afghanistan");
@Getter
private final String fullName;
private Country(String fullName) {
this.fullName = fullName;
}
}
我想如果我把一个新的国家对象实例化,比如说:
String country = new Country("AF").getFullName();
变量 country
应该设置为 "阿富汗",但我得到一个错误信息,即该对象不能是 Country
不能被实例化。
答案
检查这个 https:/stackoverflow.coma168514223874879。Enums不能被实例化,它们就像一个常量,你必须在编译时定义它们,我想。
另一答案
枚举是一个特殊的 "类",它代表了一组常量(不可改变的变量,比如最终变量)。
你可以用点阵法访问枚举常量。
String country = Country.AF.getFullName();
枚举常量是公共的,静态的和最终的。你不能使用以下方法创建枚举实例 new
.
枚举常量 (AF
在你的例子中)是你唯一可以使用的实例。
另一答案
你不能创建一个对象。
检查这个文档。https:/docs.oracle.comjavase7docsapijavalangEnum.html。
试试这个。String country = Country.AF.getFullName();
EDIT: 如果你想用一个变量来代替硬编码的字符串,你可以定义一些方法,如 findByCountryCode(countryCode)
在你的枚举中
public Country findByCountryCode(String code) {
for (Country value : Country.values()) {
if (value.getFullName().equals(code)) {
return value;
}
}
return null;
}
以上是关于在Java枚举中使用lombok @Getter注解[重复]。的主要内容,如果未能解决你的问题,请参考以下文章
Idea插件之Lombok简化实体类setter/getter操作