null почему-то. Есть у кого идеи, как фиксить?
@Test
fun `testPasses`(){
assertNotNull(MyClass.A)
assertNotNull(MyClass.a)
}
@Test
fun `testPasses2`(){
assertNotNull(MyClass.B)
assertNotNull(MyClass.b)
}
@Test
fun `testPasses3`(){
assertNotNull(MyClass.C)
assertNotNull(MyClass.c)
}
@Test
fun `testFails`(){
assertNotNull(MyClass.D)
assertNotNull(MyClass.d)
}
sealed class MyClass {
object A : MyClass()
object B : MyClass()
object C : MyClass()
object D : MyClass()
companion object {
val a: MyClass = A
val b: MyClass = B
val c: MyClass = C
val d: MyClass = D
}
}
Может была определена как константа в самом классе?
Не совсем понял, что имеете в виду. Привел код, который фейлится. Ничего дополнительно нет
Это одно из двух мест, где можно сломать котлин. На порядок инициализации синглетонгв нельзя полагаться.
Да, странно, что ломается именно на 4-м
4м ? Junit ? Писали же про 5-ый
Имел в виду, что ломается на 4-м поле. Т.е. первые 3 ок все
Это зависит от того, в каком порядке junit классы подгружает
Да, в песочнице немного по другому себя ведет
А второе это где два поля через друг на друга инициализируются? Одно напрямую другое через lazy например
Обсуждают сегодня