【问题标题】:Kotlin: check if list has an object of a specific typeKotlin:检查列表是否具有特定类型的对象
【发布时间】:2020-01-02 13:25:15
【问题描述】:

我有一个界面:

interface Change

还有一个功能:

 fun test (listOfChanges: List<Change>)

以及实现Change接口的这个类:

 class MyChange :Change

如何检查listOfChanges是否有MyChange类的元素?

点赞:if(listOfchanges.contains(MyChange::class)

【问题讨论】:

    标签: list class inheritance kotlin


    【解决方案1】:

    你可以使用any():

    listOfChanges.any { it is MyChange }
    

    【讨论】:

    • 谢谢。 listOfChanges.filterIsInstance(MyChange::class.java).isNotEmpty() 呢?哪种方法效果更快?
    • @MukhamedaliZhadigerov any()filterIsInstance() 都将遍历列表。但是,any() 在找到与给定谓词匹配的第一个元素后立即返回,而filterIsInstance() 始终迭代到列表末尾以存储结果。 filterIsInstance() 还会创建一个新列表。所以any() 似乎更适合您的情况。
    猜你喜欢
    • 2016-07-10
    • 2021-09-18
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-16
    • 2012-10-09
    相关资源
    最近更新 更多