我想知道如何在 Kotlin 中创建一个单例类,以便我的 Util 类在每次应用执行时仅将其实例化一次。但是,当我将我的 Java 类转换为 kotlin 时,生成了以下代码。
这是正确的吗?
companion object {
private var utilProject: UtilProject? = null
val instance: UtilProject
get() {
if (utilProject == null) utilProject = UtilProject()
return utilProject!!
}
}
我可以找到相关的 question ,但它是带参数的,没有参数我无法转换。
最佳答案
在 Kotlin 中有一个特殊的关键字 object
用于单例。你可以输入一些简单的东西来获得工作单例类:
object MySingleton
或者当你想要一些成员函数时:
object MySingleton {
fun someFunction(...) {...}
}
然后使用它:
MySingleton.someFunction(...)
有一个引用:https://kotlinlang.org/docs/reference/object-declarations.html#object-declarations
编辑:
在您的情况下,您只需将 class UtilProject
的定义替换为:
object UtilProject {
// here you put all member functions, values and variables
// that you need in your singleton Util class, for example:
val maxValue: Int = 100
fun compareInts(a: Int, b: Int): Int {...}
}
然后你可以简单地在其他地方使用你的单例:
UtilProject.compareInts(1, 2)
//or
var value = UtilProject.maxValue
关于android - Kotlin 中的单例类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51834996/