如何合并具有相同父接口的kotlin中的两组枚举?
我正在尝试执行以下操作:
val list = MyEnum1.values().filterIsInstance(MyParentInterface::class.java) .plus(MyEnum2.values().filterIsInstance(MyParentInterface::class.java))
在Android Studio上,lint抱怨说filterIsInstance
是一个“无用的集合类型调用”。 但是,如果我删除它, plus(MyEnum2.values()...
不起作用,因为它们不是相同的类型。
这是将两个枚举的值合并成一个列表的正确方法吗?
编辑:我的枚举看起来像这样:
enum class MyEnum1 : MyParentInterface { ENUM1_TYPE1, ENUM1_TYPE2 }
您可以明确声明一个列表为MyParentInterface,然后添加您的枚举值。
val result = mutableListOf<MyParentInterface>() return result.plus(MyEnum1.values()) .plus(MyEnum2.values())
您可以将值数组转换为列表,然后连接它们:
val sum: List<MyParentInterface> = MyEnum1.values().asList() + MyEnum2.values().asList()