-1

I have this enum defined in my project:

public enum MenuAlertEnum {

    DAILY_PLUS          (1, "MENU_DAILY_PLUS"),
    DAILY_MINUS         (2, "MENU_DAILY_MINUS"),
    WEEKLY_PLUS         (3, "MENU_WEEKLY_PLUS"),
    WEEKLY_MINUS        (4, "MENU_WEEKLY_MINUS"),
    FORTNIGHTLY_PLUS    (5, "MENU_FORTNIGHTLY_PLUS"),
    FORTNIGHTLY_MINUS   (6, "MENU_FORTNIGHTLY_MINUS"),
    MONTHLY_PLUS        (7, "MENU_MONTHLY_PLUS"),
    MONTHLY_MINUS       (8, "MENU_MONTHLY_MINUS");

    private final int id;

    private final String alertName;

    private MenuAlertEnum(int id, String alertName) {
        this.id = id;
        this.alertName = alertName;
    }

    public int getId() {
        return id;
    }

    public String getAlertName() {
        return alertName;
    }

}

and I have to add it in a List<String>, and I don't know if it is possible to do it in 1 shot like:

List<String> menuPrice = new ArrayList<String>();
menuPrice.addAll(MenuAlertEnum.values());
Nuñito Calzada
  • 4,394
  • 47
  • 174
  • 301

2 Answers2

0

Assuming that you want to get a list [ MENU_DAILY_PLUS, MENU_DAILY_MINUS, ... ]

List<String> result = Arrays.stream(MenuAlertEnum.values())
      .map(MenuAlertEnum::getAlertName)
      .collect(Collectors.toList());
Karol Dowbecki
  • 43,645
  • 9
  • 78
  • 111
0

In java 8:

public static String[] getNames(Class<? extends Enum<?>> e) {
    return Arrays.stream(e.getEnumConstants()).map(Enum::name).toArray(String[]::new);
}

Alternative (can be used before Java 8):

public static String[] getNames(Class<? extends Enum<?>> e) {
    return Arrays.toString(e.getEnumConstants()).replaceAll("^.|.$", "").split(", ");
}
dustytrash
  • 1,568
  • 1
  • 10
  • 17