我怎么用Java称这个构造函数?

问题描述 投票:0回答:1

我有一个用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相关联。有人可以帮我吗?请给我一个概念,这些参数是什么,以及实际上如何调用构造函数。

java kotlin constructor callback functional-interface
1个回答
0
投票

您可以通过将进行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;
    }
);
© www.soinside.com 2019 - 2024. All rights reserved.