我在groovy中有以下枚举
public enum ImageTypes {
jpg ("image/jpeg"),
jpeg ("image/jpeg"),
jpe ("image/jpeg"),
jfif ("image/jpeg"),
bmp ("image/bmp"),
png ("image/png"),
gif ("image/gif"),
ief ("image/ief"),
tiff ("image/tiff"),
tif ("image/tiff"),
pcx ("image/pcx"),
pdf ("application/pdf"),
final String value
ImageTypes(String value) {
this.value = value
}
String getValue() {
return this.value
}
String toString(){
value
}
String getKey() {
name()
}
}
Run Code Online (Sandbox Code Playgroud)
我想生成键或值的ArrayList <String>
我目前正在做的是循环遍历所有项目并构建数组列表,但我认为必须有一个简单的方法来做到这一点......
def imageTypes = ImageTypes.values()
def fileExts = new ArrayList<String>()
def mimeTypes = new ArrayList<String>()
for (type in imageTypes) {
fileExts.add(type.key)
mimeTypes.add(type.value)
}
Run Code Online (Sandbox Code Playgroud)
扩展@mnd的答案 -
这Spread Operator
是最好的选择,但如果您使用 Jenkins,这将无法按原样工作。要运行,Spread Operator
您需要添加@NonCPS
到Jenkins Pipeline DSL
.
获取键列表的另一种方法enum
是直接使用其枚举功能。
ImageTypes.values().collect() { it.name() }
Run Code Online (Sandbox Code Playgroud)