如何在 java 中调用此构造函数?

How do I call this constuctor in java?

我在 java 中导入了一个库 (.aar) 文件。 class 是具有构造函数的 LSPatch。

public final class LSPatch public constructor(options: org.json.JSONObject, onDiscovery: (org.json.JSONObject) -> kotlin.Unit, onData: (org.json.JSONObject) -> kotlin.Unit, onStatus: (org.json.JSONObject) -> kotlin.Unit) {....}

现在我不知道如何在 java 源代码中调用这个构造函数,当我需要创建一个 Class 'LSPatch' 的对象时。 就像我想创建

LSPatch lspatch=new LSPatch(...);

当我尝试这样做时,它显示: 我无法将它与 java 联系起来。谁能帮帮我。请告诉我这些参数是什么以及如何实际调用构造函数。

您可以通过将执行 SAM 转换的 java lambda 传递给 kotlin 的 Function 接口来创建实例。

LSPatch lspatch = new LSPatch(
    new JsonObject(),  // options
    jsonObject -> {  // onDiscovery
        // lambda body, your callback
        return Unit.INSTANCE;
    },
    jsonObject -> {  // onData
        // lambda body, your callback
        return Unit.INSTANCE;
    },
    jsonObject -> {  // onStatus
        // lambda body, your callback
        return Unit.INSTANCE;
    }
);

您可以在 Java 中将 lambda 用于第二个、第三个和第四个参数:

LSPatch lspatch = new LSPatch(
            new JSONObject(),
            jsonObject -> {
                // do your stuff
                return null;
            },
            jsonObject -> {
                // do your stuff
                return null;
            },
            jsonObject -> {
                // do your stuff
                return null;
            }
);