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