【发布时间】:2019-01-05 06:01:33
【问题描述】:
我正在尝试将 Spring Boot 2.0.3 与 IntelliJ IDEA 一起使用。 Kotlin 版本是 1.2.51。
当我使用 jsr305=strict 编译选项时,where 和 and 部分出现错误。
import com.example.spring_boot.domain.task.Task
import org.springframework.data.jpa.domain.Specification
object TaskSpecification {
private fun nameContain(name: String?): Specification<Task>? {
return name?.let {
Specification { root, query, cb ->
cb.like(root.get<String>("name"), name)
}
}
}
fun createSearchSpecification(name: String?
): Specification<Task> {
return Specification.
where(nameContain(name)).and(nameContain(name))
}
}
它说“类型不匹配:必需:规范,找到:规范?”,
当我将它们更改为where(nameContain(name)!!) 和and(nameContain(name))!! 时,错误消失了。
然后我有一个问题。
我看到了 2 个方法声明。
where 和 and 这两种方法的参数看起来都不是 NotNull 类型。
为什么我会收到这样的错误?
在这里,我附上了声明图片。
,
【问题讨论】:
标签: spring spring-boot kotlin