我有一个枚举类,例如:
enum class MimeType(val value: String, val priority: Int) {
PNG("PNG", 1),
GZIP("GZIP", 2),
TEXT("TEXT", 3),
Unknown("null", Int.MIN_VALUE)
}
以及该枚举的示例集:
val mimeTypeSet = setOf(MimeType.PNG, MimeType.GZIP)
此外,我还有一个 JSON 对象,其中包含一个对象数组,每个对象都有一个“名称”标识符:
"documentProfile": {
"types": [{
"name": "png",
"title": "Picture1",
"description": "Picture of animal",
"hash": fedac987343,
}, {
"name": "gzip",
"title": "file1",
"description": "document of ra",
"hash": 8a73f43edc,
}]
}
我在代码中访问的内容如下:
documentProfile.types.forEach{ type ->
type.name // iterate through png, gzip, etc.
}
那么,如果
type.name
出现在该枚举的 mimeTypeSet
中,我该如何检查它是 String 类型的“png”呢?
您可以使用这个:
documentProfile.types.forEach { type ->
val mimeType = mimeTypeSet.firstOrNull {
it.value.contentEquals(type.name, true)
}
}
mimeTypeSet.firstOrNull
返回满足后续条件的集合中的第一个条目。该条件测试枚举的 value
是否与类型的 name
相同,同时忽略大小写。
mimeType
然后包含找到的枚举,或者 null
如果没有匹配的内容。