我有一个将功能作为参数的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;
}
});