如果我创建Kotlin文件MyTest.kt
package my.test
fun sayHello(): String = "Hello"
将生成一个类MyTestKt
,可以从java访问它,如下所示:
MyTestKt.sayHello() // Returns "Hello"
MyTestKt myTestKt = new MyTestKt() // Instantiate
我想将该构造函数设为私有。那可能吗?如果是这样,怎么样?
我知道我可以使用object
创建一个单身人士,这不是我的问题。我知道我可以在里面创建一个companion object
的课程,这也不是我的问题。
答案 0 :(得分:0)
你可以做这样的事情
@file:JvmName("Utils")
package demo
fun foo() {}
class Utils private constructor()
当您尝试从Java调用Utils构造函数时,您将获得“Utils has private access”
UPDATE
使用私有构造函数()时,您无法访问foo函数。
我认为这可能是一个设计缺陷,具有与任何类对象无关的函数。我查看了几个kotlin标准库,我只找到了你想要的扩展函数。在这种情况下,例如,CollectionKt
,它无法实例化。