我认为标题本身就说明了问题 - Groovy 是否有类似 Kotlin 作用域函数的东西?
obj.apply {
foo()
bar()
baz()
}
// is the same as
obj.foo()
obj.bar()
obj.baz()
Run Code Online (Sandbox Code Playgroud) 我尝试将 Spring Data JDBC 与 Kotlin 数据类一起使用,在@Transient向主构造函数添加属性后,我在简单findById调用时收到错误:
java.lang.IllegalStateException: Required property transient not found for class mitasov.test_spring_data_with_kotlin.Entity!
Run Code Online (Sandbox Code Playgroud)
我的实体类如下所示:
java.lang.IllegalStateException: Required property transient not found for class mitasov.test_spring_data_with_kotlin.Entity!
Run Code Online (Sandbox Code Playgroud)
读完该问题后,我尝试@PersistenseConstructor在没有@Transient字段的情况下进行:
data class Entity(
@Id
var id: String,
var entityName: String,
@Transient
var transient: List<TransientEntity>? = mutableListOf(),
)
Run Code Online (Sandbox Code Playgroud)
但这对我没有帮助,而且我仍然收到该错误。
我怎么解决这个问题?
在 Kotlin 和 Scala 中,我们的flatMap函数的工作原理如下:
val listOfMaps = listOf(
mapOf("a" to 1, "b" to 2, "c" to 10),
mapOf("a" to 3, "b" to 4, "d" to 99),
)
listOfMaps.flatMap { listOf(it["a"], it["b"]) }
Run Code Online (Sandbox Code Playgroud)
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是完全相同的函数,但是在 Groovy 中:
[[a:1,b:2,c:10],[a:3,b:4,c:99]].flatMap { [it.a, it.b] }
Run Code Online (Sandbox Code Playgroud)