У меня есть сторонняя библиотека Java, объект с таким интерфейсом:
public interface Handler<C> {
void call(C context) throws Exception;
}
Как я могу кратко реализовать его в Kotlin, как анонимный класс Java, например:
Handler<MyContext> handler = new Handler<MyContext> {
@Override
public void call(MyContext context) throws Exception {
System.out.println("Hello world");
}
}
handler.call(myContext) // Prints "Hello world"
acceptHandler { println("Hello: $it")}
также будет работать в большинстве случаевfun interface
.У меня был случай, когда я не хотел создавать для него var, а делал это встроенным. Я добился этого
funA(object: InterfaceListener { override fun OnMethod1() {} override fun OnMethod2() {} })
источник
val obj = object : MyInterface { override fun function1(arg:Int) { ... } override fun function12(arg:Int,arg:Int) { ... } }
источник
Самый простой ответ - это лямбда Котлина:
val handler = Handler<MyContext> { println("Hello world") } handler.call(myContext) // Prints "Hello world"
источник