当前位置: 首页 > 知识库问答 >
问题:

科特林单人班

宿衡虑
2023-03-14

这是正确的吗?

companion object {
    private var utilProject: UtilProject? = null

    val instance: UtilProject
        get() {
            if (utilProject == null) utilProject = UtilProject()
            return utilProject!!
        }
} 

我可以找到一个相关的问题,但它是有参数的,我不能在没有params的情况下转换它。

共有1个答案

皇甫繁
2023-03-14

在Kotlin中有一个特殊的关键字object用于singletons。您只需键入像这样简单的内容就可以获得工作的单例类:

object MySingleton

或者当您想要一些成员函数时:

object MySingleton {
    fun someFunction(...) {...}
}

然后使用它:

MySingleton.someFunction(...)
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
 类似资料:
  • 如何在使用Kotlin的Spring Boot中正确初始化ConfigurationProperties? 目前我喜欢下面的例子: 但是它看起来很丑陋,实际上不是一个iable,foo是常量ue,应该在启动期间初始化,将来不会改变。

  • 我是科特林的新手。我想问Kotlin的私人建造者是干什么的?。我的意思是,如果我们不能创建它的实例,应该是什么类呢?

  • 在kotlin中定义一个有公共getter和私有(只有内部可修改)setter的var的正确方法是什么?

  • 问题内容: 我正在学习具有C ++和Java背景的Kotlin。我期待下面的打印,不。我知道这对应到。默认实现不比较每个成员,即和吗?如果是这样,它会不会看到字符串值相等(因为再次映射到字符串值)?显然,我在Kotlin中还没有涉及平等与身份相关的问题。 问题答案: 您描述的默认实现仅适用于数据类。不适用于从中继承实现的常规类,只需使对象与自身相等即可。

  • 我正在尝试IntDef typedef将特定类型的参数限制为函数。但是当我使用Java使用IntDef时,它工作正常,但同时,它不适用于kotlin。以下是我的代码片段 - 在JAVA中- 在静态编程语言中- 在课堂上使用- 调用演示函数给我一个错误消息,说它必须是:< code>TransTypeJava之一。CASH,< code>TransTypeJava。通过传递< code>TransT