如何在 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
}
我想知道如何在 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
}