Я новичок в разработке Android и Kotlin и в настоящее время изучаю учебные пособия, изначально написанные для Java. В них часто встречаются такие закономерности, как:
void onSomething(View v) {
switch(v.getId()) {
case R.id.btn1:
...
}
}
Однако я использую Kotlin с Kotlin Android Extensions в своих проектах, что позволяет писать такие переключатели, как:
fun onSomething(v: View) {
when (v) {
btn1 -> { ... }
}
}
Последнее кажется мне гораздо более читаемым, но, насколько я понимаю, под капотом KAE преобразует этот удобный доступ к идентификаторам пользовательского интерфейса в своего рода кеш, реализованный с помощью хэш-таблиц. Что может потребовать немного более тяжелой работы, чем сравнение целых чисел, в зависимости от реализации. Я полностью за читаемый код, но хочу лучше понять основную магию KAE.
Итак, имея это в виду,
1) является ли использование ссылок View
в коммутаторах вместо идентификаторов хорошей практикой в Kotlin/KAE?
2) может ли это негативно повлиять на производительность моего приложения или объем памяти, если не считать преждевременную оптимизацию?