有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

kotlin在java中如何称呼这个构造函数?

我有一个用java导入的库(.aar)文件。这个类是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) {....}

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

LSPatch lspatch=new LSPatch(...);

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


共 (1) 个答案

  1. # 1 楼答案

    您可以通过将执行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;
        }
    );