如何在 Kotlin 中定义 public 静态布尔值

How to define a public static Boolean in Kotlin

我想知道如何在 Kotlin 中定义静态变量,该变量可用于其他 类 非 final 的变量。因为数据在变化。

示例Java:

public static Boolean ActivityIsRuning = false;

您必须为此创建伴随对象。 您在 Kotlin 中的代码将如下所示:

class Foo {

    companion object {
         lateinit var instance: Foo
    }

    init {
        instance = this
    }
}

您可以在任何 class 的 companion object 中定义静态变量。如果将其设为 var 而不是 val,它可以更改值:

class MyClass {
    companion object {
        var activityIsRunning: Boolean = false
    }
}

可以通过三种方式实现:

1) 顶级/全局声明

在任何 class 或函数之外声明一个变量,它可以从任何地方访问:

var activityIsRunning = false

2) object(开箱即用的单例)

object StaticData {
    var activityIsRunning = false
}

可以这样访问:

StaticData.activityIsRunning

3) Class 和 companion object(正如托德已经建议的那样)

class Config {
    companion object {
        var activityIsRunning = false
    }
}

可以这样访问:

Config.activityIsRunning

添加到@Todd 和@Willi Mentzel,如果您想将这些设置分组在一个公共区域下,您可以使用顶级普通 ​​object

object GlobalSettings{
    var isHomeActivityRunning = false
    var isDrinkingCocoCola = true
}

这可以在代码中的任何位置(在 Activity、服务内或任何地方)访问,如下所示:

if( GlobalSettings.isDrinkingCocoCola ){
    // do something
} else {
   GlobalSettings.isDrinkingCocoCola = false
}