猿问

具有私有 java 构造函数的 Kotlin 顶级函数

我有 kotlin 文件,其中包含顶级函数和指定的名称,以便从 java 代码中使用它:


实用程序.kt


@file:JvmName("Utility")

package com.example


fun someUtilityFunc() {

    // ignored

}

我可以Utility在 Java 代码中实例化类:


Main.java


package com.example;


public Main {

    public static void main(String[] args) {

        new Utility();

    }

}

如何将私有构造函数添加到生成的Utility类中?


海绵宝宝撒
浏览 132回答 1
1回答

慕的地6264312

你不能。file:JvmName将生成一个带有静态方法的常规类。如果您绝对不想使用此构造函数,则必须使用objectobject Utility {    fun someUtilityFunc() {    // ignored    }}以前,您只需调用someUtilityFunc()Kotlin 代码,它就可以正常工作。但值得庆幸的是,您可以在 Kotlin 中导入函数,因此它仍然可以在没有前缀的情况下工作:import com.example.Utility.someUtilityFuncfun main() {    someUtilityFunc()}
随时随地看视频慕课网APP

相关分类

Java
我要回答