我可以在 Kotlin 中使用来自 AndroidAnnotation 的 @Bean 吗?

Can I use @Bean from AndroidAnnotation within Kotlin?

我可以在 Kotlin 中使用 AndroidAnnotation 中的 @Bean 吗?

@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 吗?

您可以将其标记为 lateinit 以避免必须对其进行初始化。

@Bean
lateinit var test: TestBean

通过这样做,您是在告诉编译器您确信它会在您第一次使用它之前进行初始化。如果它没有被初始化而你试图使用它,这将抛出一个异常。