Im creating a Java application, I used enum to create movie category. When I input MovieCategory.WAR
I would like to see War movie(My description)
instead of WAR
. How is it possible? I tried MovieCategory.WAR.getDescription()
but does’t work.
JavaScript
x
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;
}
}
JavaScript
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));
( )
Advertisement
Answer
The enum works correctly:
JavaScript
public static void main(String[] args) {
// Displays: Comedy
System.out.println(COMEDY.getDescription());
// Displays: COMEDY
System.out.println(COMEDY);
}
Or, maybe you want the toString
method to use description
?
JavaScript
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);
}
}
UPDATE #3: It seems the issue is the JSON response. If you want the description to be returned, you can annotate the getDescription
method wtih @JsonValue
.
JavaScript
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);
}
}