Sea*_*ins 2 java android functional-programming kotlin
我有一个 kotlin Web 请求方法,它将函数作为参数。由于我的一个类是如何设置的,我需要将它保留为一个 java 类,但我需要从 java 类调用 web 请求方法。
我有一个名为的类Lock,我正在使用它从我的数据库中获取Fuel
我的kotlin方法如下
fun fetchLocks(completion: (Array<Lock>) -> Unit) {
// asynchronous api calls that aren't relevant.
completion(locks)
}
Run Code Online (Sandbox Code Playgroud)
我知道这个方法有效并且能够从 kotlin 文件中调用它
FuelHelper().fetchLocks { locks ->
Do stuff with my locks
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是获取正确的语法以便在 java 中调用此方法。
new FuelHelper().fetchLocks();
Run Code Online (Sandbox Code Playgroud)
java期望的参数是 (Function1<?super Lock[], Unit>)
我已经尝试了一段时间,但无法克服这一点。任何帮助,将不胜感激。
假设您使用的是 java 8 语法。
new FuelHelper().fetchLocks(locks -> {
...
});
Run Code Online (Sandbox Code Playgroud)
或者没有 lambda
new FuelHelper().fetchLocks(new Function1<Lock[], Unit>() {
@Override
public Unit invoke(Lock[] locks) {
return null;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1039 次 |
| 最近记录: |