一般社団法人 全国個人事業主支援協会

COLUMN コラム

リモートワークももう1か月半ぐらいで、自宅での勤務もだいぶ慣れました。

緊急事態宣言が解除されましたが、僕の現場ではしばらくはリモートワークが続くようです。

さて、今回2回目となる記事ですが、
Kotlinを現場で初めて触りとても感動したので紹介します。
JavaでのAndroid開発経験のみだった人が感動したところを挙げていきます。

※ JavaでAndroid開発を少しでもやったことがある人向けです。

nullチェックの簡略化

Javaで煩わしかったnullチェックがある程度緩和されて簡潔になっています。

■Java


Hoge hoge = null;
if (hoge != null) {
    hoge.doHoge();
}


 

■Kotlin


var hoge: Hoge? = null
hoge?.doHoge()


 

hoge?と書くことで、hogeがnullならdoHoge()を実行しません。

従来のリスナー登録処理も簡略化

■Java


botton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        doSomething();
    }
});


 

■Kotlin


botton.setOnClickListener { doSomething() }


 

条件はありますが1行で書くことができます。

コールバック処理が簡単に書ける

PHPやJavaScriptにあるような関数型の変数を引数やフィールドとして持てます。
イベント通知用に使っていたリスナーのパターンもかなり簡潔に書けます。

■Java


// イベント通知リスナーのinterface実装
public class Hoge {
    public interface OnClickListener {
        void onClick();
    }
    private OnClickListener mListener = null;

    public void setOnClickListener(OnClickListener listener) {
        mListener = listener;
    }

    public void doClick() {
        if (mListener != null) {
            mListener.onClick();
        }
    }
}

// リスナー実装
Hoge hoge = new Hoge();
hoge.setOnClickListener(new Hoge.OnClickListener() {
    @Override
    public void onClick() {
        doSomething();
    }
});


 

■Kotlin


// コールバックの実装
class Hoge {
    var onClick : (() -> Unit)? = null
    fun doClick() {
        onClick?.invoke()
    }
}

// 関数オブジェクトの実装
val hoge = Hoge()
hoge.onClick = {
    doSomething()
}


 

onClickを関数オブジェクトとして宣言することでイベント通知処理もすっきり。

最後に

記事が長くなって紹介しきれなかったので続くかも

参考:https://qiita.com/RyotaMurohoshi/items/01b370f34a4bf96f5c39

 

The following two tabs change content below.

小川 智弘

最新記事 by 小川 智弘 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア