Я пытаюсь использовать kotlin в проекте java8 spring. Я делаю это, заменяя классы (java-> kotlin) один за другим.Первоначальная инициатива класса Kotlin с аспектом
Один из моего класса в Finder:
Finder.java имеет такую структуру:
@Compoment
class Finder {
private SomeObject someObject;
Finder() {
someObject = new SomeObject();
}
public void doSomething() { //aspect looks here
someObject.do();
}
}
Я заменил его Finder.kt
@Compoment
open public class Finder {
private val someObject : SomeObject
constructor() {
someObject = SomeObject()
}
public fun doSomething() { //aspect looks here
someObject.do() //NPE here
}
}
Хотя debuggind, I» ve found, что constuctor был вызван, someObject был создан при создании экземпляра Finder. Но созданный экземпляр класса FinderEnhancerBySpring был автоматически добавлен к экземпляру Detector. Он не был инициализирован, поэтому у меня есть NPE, когда я пытаюсь получить доступ к someObject.
Кроме того, класс Finder имеет другие поля с автопрокруткой (для упрощения кода, который я не написал здесь), они также не были инициализированы.
UPD: Я нашел аспект в методе Finder. Когда я удалю его, введите autwired instance, который стал Finder (не FinderEnhancerBySpring) и полностью инициализирован.
Что может быть неправильным здесь? (0.13.1514 - Котлин версия)
Было ли это решение проблема? Если это так, вы можете принять свой собственный ответ, чтобы этот вопрос казался более «выполненным», –