我想知道如何在 Kotlin 中创建一个单例类,以便我的 Util 类在每次应用程序执行时仅实例化一次。但是,当我将 Java 类转换为 kotlin 时,生成了以下代码。
它是否正确?
companion object {
private var utilProject: UtilProject? = null
val instance: UtilProject
get() {
if (utilProject == null) utilProject = UtilProject()
return utilProject!!
}
}
我可以找到相关的question https://stackoverflow.com/q/40398072/6891563,但它带有参数,并且我无法在没有参数的情况下将其转换。
有一个特殊的关键字object
对于 Kotlin 中的单例。您只需输入这样简单的内容即可获得工作单例类:
object MySingleton
或者当你想要一些成员函数时:
object MySingleton {
fun someFunction(...) {...}
}
然后使用它:
MySingleton.someFunction(...)
有一个参考:https://kotlinlang.org/docs/reference/object-declarations.html#object-declarations https://kotlinlang.org/docs/reference/object-declarations.html#object-declarations
EDIT:
在你的情况下,你只需要替换你的定义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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)