class AlarmReceiver : WakefulBroadcastReceiver() {
companion object {
const val ACTION_NOTIFY = "..."
}
override fun onReceive(context: Context, intent: Intent) { ... }
}
从我的alarmreceiver
类中调用这些代码的工作方式与我预期的一样。但是,我想在Kotlin子类之外调用其中的一个方法。
如果从不同的Kotlin类尝试AlarmReceiver.CompleteWakeFulIntent(intent)
,则会出现以下编译错误:
未解析得引用:completeWakefulIntent
class AlarmReceiver : WakefulBroadcastReceiver() {
companion object {
const val ACTION_NOTIFY = "..."
// Just call the superclass implementation for now
fun completeWakefulIntent(intent: Intent): Boolean =
WakefulBroadcastReceiver.completeWakefulIntent(intent)
}
...
}
在Kotlin中,与Java不同的是,静态成员不由子类继承,即使它们可以在没有基类名的子类内部调用。
在子类之外,必须使用基类名调用基类静态函数:
WakefulBroadcastReceiver.completeWakefulIntent(intent)
这种行为似乎存在于伴生对象概念中:层次结构中类的伴生对象互不包含。
在Java和Android中,我们可以这样做: 这样,在其他地方,我们就可以做到这一点: //编辑也许我应该说得更清楚些。我的意思是我们如何才能用Kotlin写上面的内容,用Kotlin。
问题内容: 如果我有以下python代码: 它抱怨 如何在方法中访问类/静态变量? 问题答案: 代替使用或。分配给将创建一个静态变量,分配给将创建一个实例变量。
问题内容: 我是JAVA的新手,我喜欢尝试并理解所有内容。 在JAVA中访问静态方法“ hero.returnHp()”时,我具有以下内容: 该程序运行良好,但是我注意到Eclipse发出警告,指出“应以静态方式访问hero类型的静态方法。” 当我接受自动修复时,它会更改为“ Mike.returnHp();”。到“ hero.returnHp();”。 所以我有两个问题: 1)这有什么好处? 2
我有以下设计,我想在Kotlin中实现: null 有没有更好的,更Kotlin的方法?
问题内容: 如果我有以下python代码: 它抱怨 如何bar在方法中访问类/静态变量? 问题答案: 代替bar使用或。分配给将创建一个静态变量,分配给将创建一个实例变量。