从枚举值生成数组

and*_*v15 2 java enums

假设我有一个枚举:

public enum Fruit {
    APPLES("Apples"),
    BANANAS("Bananas"),
    PEAR("Pear"),
    ORANGE("Oranges");

    private final String string;

    Fruit(String string) {
        this.string = string;
    }
}
Run Code Online (Sandbox Code Playgroud)

生成String[]包含枚举的字符串值的数组的最佳方法是什么,即"Apples", "Bananas, "Pear", "Oranges"

我可以想到几种方法,但它们可能会变得混乱,我想知道是否有直接的方法来获得这些价值.

Alv*_*L-B 8

这是我能想到的最短的一个:

Arrays.stream(Fruit.values()).map(Fruit::getName).toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)

Fruit.getName()将是一个返回stringEnum中字段的方法

  • 我说'Arrays.stream(Fruit.values())`比`EnumSet.allOf(Fruit.class).stream()`更好,更短,不需要创建`EnumSet`. (2认同)