Googleの公式言語がJavaからKotlinに変更されて久しい。今までJavaで行こうかなと思ってたけど、objective-cからswiftへ、javaからKotlinへなんて、世の中の流れを見ていると、互換性が保たれているとは言え、古い言語を使っていると情報がなくなり、老害扱いされかねないので、今年度はチョットずつでも変えて行こうと心に誓った(遅すぎ笑)
まず、勉強がてら、今までの簡単なjavaで書いていたクラスをKotlinで書いていこうと思って躓いたことを記録していく。文法がらみはネットで探せば大体わかるし、nullセーフな言語ということも理解できる。最初に躓いたのはEventListenerを継承した独自のInterfaceのインスタンス化だった。つまりは匿名クラスの書き方で躓いた。
1 2 3 4 | interface CheckQuesDBListener : EventListener{ fun checkOK(msg : String) fun checkError(msg : String) } |
上のようなリスナーを定義して、匿名クラスを書くには
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | val lis = object : CopyDBListener{ override fun copyStart(){ //println("コピー開始") } override fun copyFin(){ //println("コピー終了") } override fun copyError(msg: String) { //println("コピーエラー") } } |
のようにインスタンス化して、lisを渡してやればいい。EventLisnerに限ったことではないけど。。