我希望能够将类实例保存到公共静态变量,但我无法弄清楚如何在Kotlin中执行此操作.
class Foo {
public static Foo instance;
public Foo() {
instance = this;
}
}
Run Code Online (Sandbox Code Playgroud)
Edu*_* B. 97
与Java的静态字段最接近的是伴随对象.您可以在此处找到它们的文档参考:https://kotlinlang.org/docs/reference/object-declarations.html#companion-objects
您在Kotlin中的代码看起来像这样:
class Foo {
companion object {
lateinit var instance: Foo
}
init {
instance = this
}
}
Run Code Online (Sandbox Code Playgroud)
如果希望将字段/方法作为静态公开给Java调用者,则可以应用@JvmStatic
注释:
class Foo {
companion object {
@JvmStatic lateinit var instance: Foo
}
init {
instance = this
}
}
Run Code Online (Sandbox Code Playgroud)
Rom*_*rov 37
看起来你想要定义一个单例对象.Kotlin支持它作为一流的概念:
object Foo {
...
}
Run Code Online (Sandbox Code Playgroud)
带有静态字段和构造函数的所有样板代码都由Kotlin自动处理.你不必写任何一个.
从Kotlin代码中,您可以简单地将此对象的实例称为Foo
.从Java代码中可以引用此对象的实例Foo.INSTANCE
,因为Kotlin编译器会自动创建名为的相应静态字段INSTANCE
.
小智 7
首先创建一个简单的类,然后创建一个块后跟伴随对象关键字
例如:
class Test{
companion object{
fun getValue(): String{
return "Test String"
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用类名点函数名称来调用此类函数
例如:
// here you will get the function value
Test.getValue()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
58228 次 |
最近记录: |