Первоначальная инициатива класса Kotlin с аспектом

Я пытаюсь использовать kotlin в своем проекте java8 spring. Я делаю это, заменяя классы (java-> 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, я обнаружил, что constuctor был вызван, someObject был создан при создании экземпляра Finder. Но созданный экземпляр класса FinderEnhancerBySpring был автоматически добавлен к экземпляру Detector. Он не был инициализирован, поэтому у меня есть NPE, когда я пытаюсь получить доступ к someObject.

Кроме того, класс Finder имеет другие поля с автопрокруткой (для упрощения кода, который я не написал здесь), они также не были инициализированы.

UPD: Я нашел аспект в методе Finder. Когда я удалю его, введите autwired instance, который стал Finder (не FinderEnhancerBySpring) и полностью инициализирован.

Что здесь может быть не так? (0,13.1514 – версия ктлин)

Все методы kotlin являются окончательными (говорящими java) по умолчанию, поэтому я должен разрешить переопределять его с открытым ключевым словом:

 public open fun doSomething() { //aspect looks here someObject.do() } 
Intereting Posts
Вызов методов на интерфейсах с дженериками Не удается сохранить выбранное состояние зрения в BaseAdapter с помощью Kotlin Приложение частичной функции в Котлине Ошибка ClassNotFoundException для проекта Kotlin (не для Android) на Android Studio Определите, является ли экземпляр экземпляром класса данных только классы разрешены в левой части литерала класса при использовании Mockito и kotlin java.lang.NoClassDefFoundError в Котлине Как читать текстовый файл из Firebase в Android-приложение Почему Котлин не поддерживает «тройного оператора», Могу ли я использовать два xml-макета для использования одного и того же зрителя с использованием синтетических расширений Kotlin? Сообщение Firebase, полученное несколько раз Как я могу получить время, необходимое для проверки производительности функций в Котлине Kotlin stdlib operatios против циклов Parse String шаблон вместо файла в Pebble Template Engine Котлин: Подавить неиспользуемое имущество?