5
在Kotlin中,是否有可能使用私有構造函數創建類的實例的工廠函數?Kotlin - 具有私有構造函數的工廠函數
我的目標是強制使用工廠函數並防止通過類的構造函數實例化。
例子:
// factory function, valid
val myInstance = myClassOf()
// class instantiation, invalid
val myInstance = MyClass()
我試圖模仿的一些內置的工廠功能,如intArrayOf()
,例如行爲
// works
val myIntArray = intArrayOf()
// not possible as IntArray has a private constructor
val myIntArray = IntArray()
你的意思是MyClass.myClassOf(),對不對? –
如果您導入伴隨對象,則不需要:'MyClass.Companion.myClassOf' - 我將更新答案以更清晰 –
@JKLy,因此我需要導入Companion對象或類以引用此對象功能。猜測'intArrayOf()'被給予特殊處理,並且不能爲我自己的工廠函數複製?理想情況下,我希望能夠導入課程包而不是課程本身。 – Pooch