Kotlin에서 익명 클래스를 사용하는 방법은 다음과 같습니다.
예를 들어 Movable이라는 interface가 있다고 가정합시다.
interface Movable {
fun move()
fun fly()
}
그리고 main.kt에서 Movable interface의 move()와 fly()를 사용하기 위해 moveSomething() 함수를 만듭니다.
fun main() {
}
private fun moveSomething(movable: Movable) {
movable.move()
movable.fly()
}
그리고 main()에서 moveSomething()의 인자로 들어가는 Movable을 구현하기 위해서 Java에서는 new Movable() {}
로 작성했지만 Kotlin에서는 object : Interface {}
로 작성하면 된다.
fun main() {
moveSomething(object : Movable {
override fun move() {
println("Move")
}
override fun fly() {
println("Fly")
}
})
}
private fun moveSomething(movable: Movable) {
movable.move()
movable.fly()
}