Я довольно новичок в kotlin, но перед этим выполнил несколько расширенных java ...
Я пытался использовать kotlin и java в одном проекте, но это выглядело очень некрасиво, и мне не нравилось, что мои классы были разделены на две части. Так что теперь мой проект на 100% котлин и есть проблемы ...
Я получаю это сообщение об ошибке:
lateinit property serviceX has not been initialized
Я понимаю, это означает, что служба еще не инициализирована, но как мне ее инициализировать?
с Java и Spring, я сделал @Autowired или внедрил службы в конструкторе, и это было сделано.
мне нужно, чтобы мой REST мог использовать serviceX
@Component
@Path("/super")
open class SuperRest : BaseRest() {
@PUT
@Path("/test")
fun putTest(
@Context securityContext: SecurityContext,
@NotNull selected: String
) {
val user = serviceX(securityContext)
}
}
и в BaseRest я попытался автоматически подключить сервис X
во-первых, это было:
@Autowired
protected lateinit var serviceX: ServiceX
тогда это было просто
@Autowired
lateint var serviceX: ServiceX
тогда я попробовал другие решения, которые я нашел в SO
open class BaseRest @Autowired constructor(
private val serviceX: ServiceX
) { ... }
Почему это?
Я все еще могу использовать другие службы @autowired в моем отдыхе просто отлично.
Просто когда я пытаюсь использовать их из расширения BaseRest, я получу
lateinit property serviceX has not been initialized
даже без какого-либо свойства lateinit, я все равно каким-то образом получаю эту ошибку ..
private var serviceX: ServiceX = ServiceX()
все равно как-то не инициализируется, помогите пожалуйста