Inyectar constructor y object complementario

Soy algo nuevo para Kotlin y estoy intentando inyectar un valor (en este ejemplo, es solo un int pero en el código real es una class de proveedor) ¿Qué estoy haciendo mal aquí? y ¿por qué x es una reference no resuelta?

class Test @Inject constructor(private val x: Int) { companion object { var y: Int = 0 @BeforeClass @JvmStatic fun beforeClass() { y = x * 2 } } } 

Un object complementario es un object estático asociado con una class , no con una instancia de una class.

 class Foo(val bar: Baz) { companion object {} } 

es similar al siguiente código en Java:

 class Foo { static class Companion { } static final Foo.Companion Companion = new Foo.Companion(); final Baz bar; Foo(Baz bar) { this.bar = bar; } } 

Esta es la razón por la cual x no está en el scope variable del object complementario, al igual que no puede acceder al campo de la bar desde la class estática Companion . Su propiedad y es en realidad un campo en la class Test.Companion .

No estoy seguro de lo que estás tratando de hacer con la cosa BeforeClass , ya que no estoy familiarizado con eso. Espero que mi respuesta ayude de todos modos.

  • ¿Cómo corotines de Kotlin son mejores que RxKotlin?
  • Agregar subscribeOn () está cambiando el tipo de retorno de observable
  • RxJava2 Tal vez devuelva Observable vacío si no hay elemento
  • Cómo pasar nulo a un Observable con tipo anulable en RxJava 2 y Kotlin
  • ¿Cómo escalar dinámicamente el rebote de la stream de emisión de ráfagas?
  • ¿Cómo puedo agregar de manera condicional una operación asincrónica en medio de una transmisión de RxJava?
  • Cómo notificar a Observable cuando finalice CountdownTimer
  • Excepción causada por: java.lang.ClassNotFoundException: org.reactivestreams.Publisher
  • Confusión de la syntax de Kotlin lambda
  • Crear nueva instancia de object Kotlin
  • RxKotlin collectInto () MutableList usando references de método