我有这样的代码:
@Service
class SomeClass (
private val departmentClient : DepartmentClient
) {
fun someFunction(
employee: Employee,
department: Department = departmentClient.getById(employee.departmentId)
): Unit {
here my code
}
}
data class Employee(val departmentId: Long, val id: Long)
data class Department(val id: Long)
@Service
class DepartmentClient() {
fun getById(id: Long): Department
}
当我没有在someFunction中传递department参数时,我期望departmentClient.getById(employee.departmentId)
会被调用,问题是在某些情况下,我在这一行中得到一个空指针异常,但在其他情况下,我没有,所有的依赖都是由Spring注入的。
2条答案
按热度按时间guicsvcw1#
函数
getById
可能定义错误,在运行时遇到空指针异常。这个函数来自哪里?它应该如下所示:
这意味着您需要在
here my code
中处理department: Department?
。tct7dpnv2#
我认为当你分配一个变量空值时会发生这种情况。你可以通过使用“?”或“?.”(安全操作符),在类型(部门)后放置“?”来解决这样的问题。