java - 如何打印枚举描述
问题描述
我正在创建一个 Java 应用程序,我使用枚举来创建电影类别。当我输入时,MovieCategory.WAR
我想查看War movie(My description)
而不是WAR
. 这怎么可能?我试过MovieCategory.WAR.getDescription()
但没有用。
public enum MovieCategory {
COMEDY("Comedy"), HORROR("Horror"), SCIFI("Sci-Fi"),
ACTION("Action movie"), ROMANTIC("Romantic"),
CLASSIC("Classic"), WAR("War movie");
private final String description;
MovieCategory(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
public class MovieManager {
private List<Movie> movieList;
public MovieManager() {
this.movieList = new ArrayList<>();
movieList.add(new Movie("Simple movie", MovieCategory.WAR,"Testing description.",167,12));
(...)
解决方案
枚举正常工作:
public static void main(String[] args) {
// Displays: Comedy
System.out.println(COMEDY.getDescription());
// Displays: COMEDY
System.out.println(COMEDY);
}
或者,也许您希望toString
使用该方法description
?
public enum MovieCategory {
COMEDY("Comedy");
private final String description;
MovieCategory(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return getDescription();
}
public static void main(String[] args) {
// Displays: Comedy
System.out.println(COMEDY.getDescription());
// Displays: Comedy
System.out.println(COMEDY);
}
}
更新#3:似乎问题出在 JSON 响应上。如果要返回描述,可以使用注释getDescription
方法@JsonValue
。
import com.fasterxml.jackson.annotation.JsonValue;
public enum MovieCategory {
WAR("War movie");
private final String description;
MovieCategory(String description) {
this.description = description;
}
@JsonValue
public String getDescription() {
return description;
}
@Override
public String toString() {
return getDescription();
}
public static void main(String[] args) {
// Displays: Comedy
System.out.println(WAR.getDescription());
// Displays: Comedy
System.out.println(WAR);
}
}
推荐阅读
- python - 使用 BeautifulSoup 抓取问题
- bootstrap-5 - Bootstrap .... 移除 div 容器的边距
- python - 我的 Choropleth 地图只显示地图,不显示颜色
- lua - 我的数值没有更新,我该如何解决?
- javascript - 组件更新状态未反映在 hashchange 处理程序中
- javascript - 在普通数组上使用 Observable 有什么附加价值?
- r - 如何将模型预测和原始数据结合在 R 中的单个图上?
- python - 从域数据库中过滤过期域和注册域
- php - 幼虫“工匠迁移:新鲜”不起作用
- javascript - 赛普拉斯:在与访问交互或更新应用程序的路径 URL 后处理 UI 更新