如果我创建一个Kotlin文件 MyTest.kt
package my.test
fun sayHello(): String = "Hello"
Run Code Online (Sandbox Code Playgroud)
MyTestKt将生成一个类,可以从java访问它,如下所示:
MyTestKt.sayHello() // Returns "Hello"
MyTestKt myTestKt = new MyTestKt() // Instantiate
Run Code Online (Sandbox Code Playgroud)
我想将该构造函数设为私有.那可能吗?如果是这样,怎么样?
我知道我可以用一个object来创建一个单身,这不是我的问题.我知道我可以用companion object内部创建一个类,这也不是我的问题.
你可以做这样的事情
@file:JvmName("Utils")
package demo
fun foo() {}
class Utils private constructor()
Run Code Online (Sandbox Code Playgroud)
当您尝试从 Java 调用 Utils 构造函数时,您会收到“Utils 具有私有访问权限”
更新当使用私有构造函数()时,您无法访问 foo 函数。我认为这可能是一个设计缺陷,具有不与任何类对象关联的函数。我研究了几个 kotlin 标准库,但只找到了您想要的扩展函数。在这种情况下,例如 ,CollectionKt它无法被实例化。
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |