Java 8 - 无法调用数组类型的流()枚举[]

问题描述:

为什么我不能在数组类型Enum上调用stream()Java 8 - 无法调用数组类型的流()枚举[]

DummyEnum[] array = DummyEnum.values(); 
array.stream(); // Compile Error 

ENUM:

public enum DummyEnum { 
    Hello("Hello"), Welcome("Welcome"); 
    private String greeting; 

    private DummyEnum(final String greeting) { 
     this.greeting = greeting; 
    } 

    public String getValue() { 
     return greeting; 
    } 
} 
+2

请注意'DummyEnum.values()'在每次调用时创建一个新数组。这通常不是问题,但是如果您在非常热的代码中执行此操作,则可能需要将单个实例缓存在静态字段中。 – the8472

使用Stream.of(array)。数组没有stream()方法。

+3

或'EnumSet.allOf(DummyEnum.class).stream()'... – Holger