Могу ли я использовать @Bean из AndroidAnnotation в Kotlin?

Могу ли я использовать @Bean от AndroidAnnotation в Kotlin?

@EActivity(R.layout.activity_test)
open class TestActivity : AppCompatActivity() {

   @Bean
   var test:TestBean //<-- IDE shows "property must be initialized or abstract"

Это мое Bean декларация

@EBean
class TestBean {

  fun printShit(){
    Log.e("ASDF","ASDF")
  }
}

Это как-то возможно? Или я должен использовать Kotlins object за это?

1 ответ

Решение

Вы можете отметить это lateinit чтобы избежать инициализации.

@Bean
lateinit var test: TestBean

Делая это, вы сообщаете компилятору, что вы уверены, что он будет инициализирован перед первым использованием. Если он не инициализируется и вы пытаетесь его использовать, это вызовет исключение.

Другие вопросы по тегам