andreworobator
04/06/2018, 6:42 PMfun bindView(
position: Int,
view: ListItemView // Interface
) = when (ViewTypeEnum.values()[position]) {
ENUM1 -> bindViewType1(view as ViewType1)
ENUM2 -> bindViewType2(view as ViewType2)
}
Andreas Sinz
04/06/2018, 6:56 PMlouiscad
04/07/2018, 8:28 AMvalues()
call. It allocates a new array (defensive copy) each time you call itandreworobator
04/10/2018, 3:03 PMAndreas Sinz
04/10/2018, 3:12 PMlouiscad
04/10/2018, 3:25 PMandreworobator
04/10/2018, 3:49 PMfun bindView(
position: Int,
view: ListItemView
) = when (ViewTypeEnum.values[position]) {
ENUM1 -> bindViewType1(view as ViewType1)
ENUM2 -> bindViewType2(view as ViewType2)
}
class ViewTypeEnum {
ENUM1, ENUM2
companion object {
val values: Array<ViewTypeEnum> = ViewTypeEnum.values()
}
}
louiscad
04/10/2018, 3:51 PMenum class
with a ;
after the last enum value ENUM2
, but yes, such code is better. 👍 You could also add @JvmField
to values
😉andreworobator
04/10/2018, 3:54 PMlouiscad
04/10/2018, 4:02 PM@JvmField
is for performance, not for interop. You can make your enum class private BTW.andreworobator
04/10/2018, 4:10 PM@JvmField
improve performance?louiscad
04/10/2018, 4:13 PMandreworobator
04/10/2018, 4:16 PMAndreas Sinz
04/10/2018, 5:03 PM