с разными сигнатурами, если они принимают некоторые одинаковые переменные?
Функции из compose
Первая:
fun Column(
modifier: Modifier = Modifier,
verticalArrangement: Arrangement.Vertical = Arrangement.Top,
horizontalAlignment: Alignment.Horizontal = Alignment.Start,
content: @Composable ColumnScope.() -> Unit
)
Вторная:
fun Row(
modifier: Modifier = Modifier,
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
verticalAlignment: Alignment.Vertical = Alignment.Top,
content: @Composable RowScope.() -> Unit
)
Я хочу сделать что-то на подобие
val a = ::Column
val b = ::Row
test(a)
test(b)
fun test(container: ???) ...
Нет, функции не наследуются.
А через рефлексию есть возможности это решить?
Если и можно, то очень сложно
Это однозначно плохой способ решать проблему
Если что-то прячется, то это значит, что это использовать стоит только в крайних случаях
Я рассматриваю это с точки зрения расширения. Могут быть разные типы контейнеров, у которых первый и последний параметр одинаковые всегда. Два других не присваиваются. Чтоб не плодить количество функций под каждый тип контейнера, я хочу сделать возможность ее передавать
можно сделать классы и их наследовать
Но при добавлении нового контейнера мне уже нужно переписывать класс, а не использовать готовую функцию сразу
переиспользование возможностей рефлексии ведет к проблемам расширения
зачем переписывать?
когда от порядка передачи, способа передачи и тд что-то зависит
Обсуждают сегодня