我正在尝试以惯用的方式将以下 Java 代码转换为 Kotlin:
for (Group group : groups) {
String groupName = group.getName();
if (groupName == null) {
warn("Group name is null for group " + group.getId());
continue;
}
...
}
我尝试了以下方法
for (group in groups) {
val groupName = group.name ?: run {
warn("Group name is null for group ${group.id}!")
continue
}
...
}
但是这不会编译错误:
'break' or 'continue' jumps across a function or class boundary
所以我的问题是,有没有更好的方法用 Kotlin 编写这个?
最佳答案
通常 continue
也可以通过 ::filter
模拟。
但由于在这种情况下您还需要一个警告,这使得经典的 for
成为最佳解决方案。
但是还有一些替代方案。
groups.filter { group -> when(group.name) {
null -> {
warn("Group name is null for group ${group.id}!")
false
}
else -> true
}.for Each {
...
}
}
或者使用return@forEach
。
但同样,在这种情况下,经典的 for
是最好的解决方案
关于java - 在 Kotlin 的运行 block 中继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51373484/