比较Collections.sort的功能在Kotlin中期望Int类型的值

在代码中:

Collections.sort(activities,Comparator<ResolveInfo> {
    fun compare(a: ResolveInfo,b: ResolveInfo): Int {
        var pm = activity!!.packageManager
            return String.CASE_INSENSITIVE_ORDER.compare(a.loadLabel(pm).toString(),b.loadLabel(pm).toString())
        }
    })

编译器告诉我“类型不匹配:必需的整数”。

但是它不是返回int吗?

我在做什么错?谢谢!

zzcool0102 回答:比较Collections.sort的功能在Kotlin中期望Int类型的值

实际上,解决方案非常简单-为了创建某个接口类的对象,在object之前需要关键字Comparator,如下所示:

Collections.sort(activities,object: Comparator<ResolveInfo> {
    fun compare(a: ResolveInfo,b: ResolveInfo): Int {
        var pm = activity!!.packageManager
            return String.CASE_INSENSITIVE_ORDER.compare(a.loadLabel(pm).toString(),b.loadLabel(pm).toString())
        }
    })

有关更多信息,请检查Object Expressions and Declarations

本文链接:https://www.f2er.com/3170132.html

大家都在问