#android #kotlin #parameters
Вопрос:
Я хочу иметь возможность передавать как fun1, так и fun2 в параметр MyAction класса MyAdapter без добавления MyClass? параметр для fun2. Функция fun2 не использует параметр MyClass, поэтому, если я добавлю его, у меня будет параметр, который не используется.
Есть ли способ сделать это? при поиске метода я нашел информацию о vararg, но, похоже, в этом сценарии он не работает.
class MyAdapter(
var myAction: (myClass: MyClass?) -> Unit
)
fun fun1(myClass: MyClass?) {
Log.d("fun selected")
myClass.print()
}
fun fun2() {
Log.d("fun selected")
}
fun initAdapter(){
val adapter1 = MyAdapter(::fun1);
val adapter2 = MyAdapter(::fun2);
}
Ответ №1:
Вы всегда можете просто передать прокси — функцию, к MyAdapter
которой обращаются fun2
. Так что что-то вроде этого:
MyAdapter { fun2() }