首页 > 解决方案 > 如何在Java中调用将回调作为参数的函数

问题描述

我正在尝试在我的 android 应用程序中实现ReachFive,我必须调用初始化方法。

这就是他们在文档中的称呼:

    // Initialize the ReachFive client
    client.initialize({ providers ->
        // On success, do something with the retrieved list of providers registered for this ReachFive client
        // ...
    }, {
        // On failure, log the error message returned by the ReachFive client
        Log.d("Reach5_MainActivity", "ReachFive init ${it.message}")
    })

但是这个代码示例在 Kotlin 中,我不知道如何initialize在 java 中调用该方法。

编辑:这是initializeSDK 代码中的函数 find:

fun initialize(
    success: Success<List<Provider>> = {},
    failure: Failure<ReachFiveError> = {}
): ReachFive {
    reachFiveApi
        .clientConfig(mapOf("client_id" to sdkConfig.clientId))
        .enqueue(
            ReachFiveApiCallback<ClientConfigResponse>(
                success = { clientConfig ->
                    scope = clientConfig.scope.split(" ").toSet()
                    providersConfigs(success, failure)
                },
                failure = failure
            )
        )

    return this
}

标签: javaandroidkotlin

解决方案


试试这个(把你的函数的实现/逻辑而不是点)

client.initialize((providers) -> {...}, (error) -> {...}); 

请注意,您的第一个方法应该返回一个实例,Success<List<Provider>>而您的第二个 lambda 应该返回Failure<ReachFiveError>.


推荐阅读