Kotlin 中这些东西的用途是啥?
Posted
技术标签:
【中文标题】Kotlin 中这些东西的用途是啥?【英文标题】:What is an usage of these things in Kotlin?Kotlin 中这些东西的用途是什么? 【发布时间】:2019-11-24 21:01:01 【问题描述】:我一直在学习 Kotlin,目前面临两个问题。
私有构造函数有什么用? 私人的有什么用 构造函数中的参数?
我们甚至无法创建具有私有构造函数的类的实例
构造函数中的私有参数...
因此,它们将仅在该类中可见?但是,他们这样做了,并且在构造函数中没有 private
修饰符。
感谢任何帮助!
【问题讨论】:
【参考方案1】:私有构造函数
类似于java
。如果类只有私有构造函数,您可以禁止创建类实例。或者您可以允许此类负责创建其实例(就像在单例模式中所做的那样)。
class Singleton private constructor(val name: String)
companion object
fun getInstance(): Singleton
return Singleton() // Simplified
构造函数私有参数
如果类C
的构造函数具有val s: String
参数,则它成为实例公共属性属性,并且可以像C.s
一样访问。如果我们将这些参数声明为private
,它将成为实例私有属性。
class Holder(private val pri: String, val pub: String)
val holder = Holder("private", "public")
holder.pub // contains "public"
holder.pri // not accessible
【讨论】:
【参考方案2】:这和Java私有构造函数一样,你可以使用伴生对象方法来实例化类。
class Foo private constructor(val someData: Data)
companion object
fun constructorA(): Foo
// do stuff
return Foo(someData)
// ...
【讨论】:
以上是关于Kotlin 中这些东西的用途是啥?的主要内容,如果未能解决你的问题,请参考以下文章