【发布时间】:2015-11-22 13:13:44
【问题描述】:
我正在尝试将我的休闲项目从 Java 重写为 Kotlin(以理解它),但遇到了一些问题。研究将我带到{ function() },但它没有帮助我
在 Java 中我有这个接口:
public interface Shuffling<T> {
List<T> shuffle(List<T> list, ShuffleCallback callback);
interface ShuffleCallback {
void onShuffle(int addedTo, int randomIndex);
}
}
我正在尝试将测试对象添加到 Kotlin 中的洗牌算法列表中:
val algoList = ArrayList<Shuffling<Int>>()
algoList.add(Shuffling { list, callback -> {
Timber.d("Test!")
ArrayList<Int>() // how to return this value?
}})
如何在 lambda 函数中添加多行?
我还有另一个麻烦的例子:
Kotlin 界面:
interface Drawable {
fun draw()
}
和 Kotlin 实现:
private val drawList = ArrayList<Drawable>()
//...
drawList.add(Drawable {glDrawArrays(GL_TRIANGLE_FAN, startVertex, numVertices)})
以前我只用过:
mDrawList.add(() -> glDrawArrays(GL_TRIANGLE_FAN, startVertex, numVertices));
一切都很好。
【问题讨论】: