ВМ
не очень понятно, почему не рекомендуется оптимизировать, что тут можно сделать хуже?
Size: a a a
ВМ
AN
A
ВМ
AN
ВМ
AN
AN
IP
IP
IP
V
ВМ
IP
sealed class A { class B: A; class C: A; class D: A }
when (a) { is B -> fB(a); is C -> fC(a); is D -> fD(a) }
abstract class A(val tp: Int) { class B: A(1); class C: A(2); class D: A(3) }
when (a.tp) { 1 -> fB(a as B); 2 -> fC(a as C); 3 -> fD(a as D) }
?V
с#
sealed class A { class B: A; class C: A; class D: A }
when (a) { is B -> fB(a); is C -> fC(a); is D -> fD(a) }
abstract class A(val tp: Int) { class B: A(1); class C: A(2); class D: A(3) }
when (a.tp) { 1 -> fB(a as B); 2 -> fC(a as C); 3 -> fD(a as D) }
?ВМ
@IntDef
логика была в том, что от этих перечислений кроме самого факта, что это перечисление, ничего не требовалось, а ресурсы (память) расходовались впустую при обычных enumс#
@IntDef
логика была в том, что от этих перечислений кроме самого факта, что это перечисление, ничего не требовалось, а ресурсы (память) расходовались впустую при обычных enumI
AN