Kotlin - 什么时候会用上private constructor

在kotlin中提供一个private constructor的功能,但你会问说,如果constructor无法使用,那怎么宣告? 当然这是有特殊用途的,譬如你有一个class,希望他透过指定的Builder或者特殊的static member来进行产生的时候

class ViewManager private constructor(engine: Engine) {     // do something}

于是乎就会加上

class ViewManager private constructor(engine: Engine) {     // do something        fun hello(){ ... }        companion object {        private lateinit var instance: ViewManager        fun create(engine: Engine,data: Int): ViewManager {            if(!::instance.isInitialized) {                // if data ....                instance = ViewManager(engine)            }            return instance        }    }}

变成强制必须这样呼叫

ViewManager.create(engine).hello()

大概会是这样使用,在这边主要就是希望透过create来取得与建立同一个实例,外部无法有任何其他方法自己另外建立实例,当然如果你是没有参数的物件,可以直接透过object来做到一样的事情。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章