我希望能够将类示例保存到私有/公共静态变量,但我不知道如何在Kotlin中做到这一点。
public class Foo {
private static Foo instance;
public Foo() {
if (instance == null) {
instance = this;
}
}
public static Foo get() {
return instance;
}
}
4条答案
按热度按时间nfeuvbwi1#
更新:任何人(比如OP)只要需要一个所谓的“Singleton”,有时也称为“Service”(Android除外),就应该简单地使用Kotlin的内置:
(Like Roman在评论部分正确地指出。)
以前的答案;如果你有(或计划有)多个
static
变量,请继续阅读:与Java的静态字段最接近的是伴随对象。您可以在这里找到它们的文档参考: www.example.com
你在Kotlin中的代码看起来像这样:
如果你想让你的字段/方法对Java调用者公开为静态的,你可以应用
@JvmStatic
注解:注意
@JvmStatic
不需要任何导入(因为它是Kotlin的内置功能)。ctzwtxfj2#
看起来您想定义一个单例对象。它在Kotlin中被支持为一流的概念:
所有带有静态字段和构造函数的样板代码都由Kotlin自动处理。你不用写这些。
在Kotlin代码中,您可以将此对象的示例简单地称为
Foo
。在Java代码中,您可以将此对象的示例引用为Foo.INSTANCE
,因为Kotlin编译器会自动创建名为INSTANCE
的相应静态字段。vyu0f0g13#
首先创建一个简单的类,然后创建一个块,然后使用同伴对象关键字
例如:
你可以用类名点函数名来调用这个类函数
例如:
fnvucqvd4#
您可以为类创建一个伴随对象,如果您希望字段为
static
,您可以使用注解@JvmStatic。同伴对象可以访问它所属的类的私有成员。参见下面的示例: