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 } } }
- RxKotlin - Single.just () no se emite al suscribirse TestSubscriber
- Comportamiento con Kotlin Higher-Order Functions e interfaces de método único?
- Obligatorio <Objeto> y encontrado <Objeto>?
- RxJava- Gire Observable en Iterator, Stream o Sequence
- RxKotlin - matriz de observadores dynamics
- No se puede 'observar en' hilo principal con RxKotlin
- OnComplete nunca se llamó con toSortedList () y groupBy ()
- RxJava - ¿Entradas de keyboard de contrapresión?
- cómo implementar Switch usando Data binding en android
- No se puede cambiar el text de ActionMenuItemView con RxKotlin
- ¿Cómo escalar dinámicamente el rebote de la stream de emisión de ráfagas?
- ¿Cómo hacer un grupo? ¿Por qué coleccionar usando RxJava y Kotlin?
- Para una function de Kotlin utilizada como expresión, ¿hay una forma concisa de operar y devolver un valor?
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.
- Método modificado con nueva condición
- Práctica recomendada para convertir el código de Java utilizado para copyr files de activos en la carpeta de caching de Android a Kotlin