我有一个用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(...);
当我尝试这样做时,它显示:无法将其与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;
}
);