LoginSignup
3
1

More than 3 years have passed since last update.

【kotlin】オブジェクト式

Posted at

■オブジェクト式とは

Android開発では再利用しないクラスがよくある。
そういった時に便利なのがオブジェクト式機能
書き方

object{クラス本体}

クラスの継承やインターフェースの実装も可能

object: 親クラス or インタフェイス{クラス本体}

■使い方

リスナクラスで使ったりする。
setOnClickListenerメソッドの中でobject式を利用
View.OnClickListenerインターフェイスを実装している。

▼何故object式を利用するか?
決められたボタンを押した時の処理意外使わないから

btn.setOnClickListener(object: View.OnClickListener {
  override fun onClick(view: View) {
    ボタンがクリックされた時の処理
   }
})

▼SAMインターフェイスとは
View.OnClickListenerインターフェイスのように抽象メソッドを一つしか持たないもの。
抽象メソッドを一つしか持たないインターフェイスをSAMインターフェイスと呼ぶ。

■SAM変換でもっとシンプルに!

オブジェクト式で実装するインターフェイスがSAMインターフェイスの場合
ラムダ式で置き換えて省略してコードをシンプルにできる。

■省略コード
object
SAMインターフェイス: setOnClickListenerで使うSAMインターフェイスは決まっている。推論できる。
override fun onClickメソッド: SAMインターフェイスなので使うメソッドも推論できる。

btn.setOnClickListener({ view: View -> 処理})

■ラムダ式の省略記法を使いもっともっとシンプルに!!!!

▼ラムダ式の省略記法
●引数の型があきらかなら省略可能
●引数を利用しないなら引数そのものを省略可能
●ラムダ式を囲む()を省略可能

btn.setOnClickListener{処理}

よくみる書き方!
これはオブジェクト式を使いSAM変換しラムダ式でここまで省略した姿だったと言う事です!!!!!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1