2015-04-06 37 views
17

是否有任何Java 8法或簡單的方法,返回枚舉值作爲字符串的列表,如:獲取枚舉值的字符串列表中的Java 8

List<String> sEnum = getEnumValuesAsString(); 
+1

將枚舉值作爲字符串的含義是什麼?你想要一個枚舉常量的名字列表嗎? – user2357112 2015-04-06 05:45:53

+0

@ user2357112,值爲'列表字符串' – 2015-04-06 05:50:12

+0

這並沒有回答這個問題。枚舉值不是字符串。 – user2357112 2015-04-06 05:51:42

回答

52

你可以做(​​前的Java 8 ):

​​

List<Enum> enumValues = new ArrayList<Enum>(EnumSet.allOf(Enum.class)); 

使用Java8功能,您可以將每個常量映射到它的名字:

List<String> enumNames = Stream.of(Enum.values()) 
           .map(Enum::name) 
           .collect(Collectors.toList()); 
+0

很好的答案。考慮運行時,是否有任何使用流數組的列表來考慮運行時? – Hannes 2015-04-06 05:51:58

+1

No.使用Streams可以實際提高性能,因爲它可以並行處理。 – 2015-04-06 05:53:50

+5

您還可以使用Stream.of或Arrays.stream稍微縮短asList(...)。stream()。 – Radiodef 2015-04-06 05:56:01