我有一个将功能作为参数的kotlin Web请求方法。
由于我的一个类的设置方式,我需要将其保留为java类,但需要从java类调用Web请求方法。

我有一个名为Lock的类,正在使用Fuel从数据库中获取

我的kotlin方法如下

fun fetchLocks(completion: (Array<Lock>) -> Unit) {
  // asynchronous api calls that aren't relevant.
  completion(locks)
}

我知道此方法有效,并且能够从kotlin文件中调用它
FuelHelper().fetchLocks { locks ->
  Do stuff with my locks
}

我遇到的问题是获取正确的语法以便在Java中调用此方法。
new FuelHelper().fetchLocks();

Java期望的参数是(Function1<?super Lock[], Unit>)
我已经尝试了一段时间,无法克服这个问题。任何帮助,将不胜感激。

最佳答案

假设您使用的是Java 8语法。

new FuelHelper().fetchLocks(locks -> {
    ...
});

或不带lambda
new FuelHelper().fetchLocks(new Function1<Lock[], Unit>() {
        @Override
        public Unit invoke(Lock[] locks) {
            return null;
        }
    });

09-30 15:03
查看更多