Kotlin 出于某种原因设置<;字符串>;没有「;包括「;
它在构造函数中初始化,并返回字符串集Kotlin 出于某种原因设置<;字符串>;没有「;包括「;,kotlin,Kotlin,它在构造函数中初始化,并返回字符串集 private val listener: () -> Set<String> = { NotificationManagerCompat.getEnabledListenerPackages(context) } private val侦听器:()->Set={ NotificationManagerCompat.getEnabledListenerPackages(上下文) } 但由于某些原因,当我调用listener.co
private val listener: () -> Set<String> = {
NotificationManagerCompat.getEnabledListenerPackages(context)
}
private val侦听器:()->Set={
NotificationManagerCompat.getEnabledListenerPackages(上下文)
}
但由于某些原因,当我调用listener.contains(“包”)
上面说
侦听器
是()->Set类型的lambda侦听器
是()->Set类型的lambda您的侦听器
是lambda函数,而不是Set
。您需要首先调用它:listener()。包含(…)
@Маааааафаааааааааааааааа。我只是想知道您是否打算让侦听器成为一个函数,而不是一个实际的集合。这段代码是您编写的,还是从某个地方复制的?Kotlin不像Java,大括号只用于范围界定;在Kotlin中,除了类和函数体等少数情况外,它们定义了lambda。 因此,用大括号包装某些内容将改变其含义。您可能会发现编写private val listener:Set get()=NotificationManagerCompat.getEnabledListenerPackages(context)
。您的侦听器是lambda函数,而不是Set
。您需要首先调用它:listener()。包含(…)
@Маааааафаааааааааааааааа。我只是想知道您是否打算让侦听器成为一个函数,而不是一个实际的集合。这段代码是您编写的,还是从某个地方复制的?Kotlin不像Java,大括号只用于范围界定;在Kotlin中,除了类和函数体等少数情况外,它们定义了lambda。 因此,用大括号包装某些内容将改变其含义。您可能会发现编写private val listener:Set get()=notificationmanager compat.getEnabledListenerPackages(context)
更有用。
listener.invoke().contains("value")
listener().contains("value")