Когда при использовании делегатов свойств в Kotlin какое преимущество они дают? Может кто-нибудь объяснить это на примере реального мира, взятом из Android Navigation Component документация :
val args: ConfirmationFragmentArgs by navArgs()
Почему здесь используется делегат свойства? Это просто более короткий код? Может кто-нибудь объяснить, пожалуйста, код позади него:
@MainThread
inline fun <reified Args : NavArgs> Fragment.navArgs() = NavArgsLazy(Args::class) {
arguments ?: throw IllegalStateException("Fragment $this has null arguments")
}
@Nullable
final public Bundle getArguments() {
return mArguments;
}
Спасибо!