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

COLUMN コラム

前編リンク

フリーランスになって早3か月、一度なってしまえば結構なんとかなるもんだな、という気持ちでいる小川です。

仕事はまだリモートワークですが、休日はそこそこ外出して人と会う機会が増えてきました。
インドア体質の僕は今ぐらいの塩梅がいいですね。

さて、この記事は前回の続きで、引き続きKotlinのいい所の紹介です。

 

スコープ関数(apply, let等)による可読性の向上

applyやlet等でくくることで、同じインスタンスへの処理の可読性が高くなります。

■Java


Hoge hoge = Hoge.create();
hoge.setName("fuga");
hoge.setUrl("https://~");
hoge.prepare();
hoge.start();


■Kotlin


Hoge.create().apply {
    name = "fuga"
    url = "https://~"
    prepare()
    start()
}


このケースでは一時変数も不要になっています。

 

メソッドチェーンに分岐を入れられる

Builderパターンで説明します。
Javaだと途中に分岐があるとそこでメソッドチェーンが切れてしまいますが、Kotlinではletを使えば途切れずに書けます。

■Java


Hoge hoge = Hoge.builder()
    .putType(type);
if (value instanceof Integer) {
    hoge.putInt(value);
} else if (value instanceof String) {
    hoge.putString(value);
} else if (value instanceof Long) {
    hoge.putLong(value);
}
hoge.build();


■Kotlin


val hoge = Hoge.builder()
    .putType(type)
    .let {
        when (value) { h ->
            is Int -> h.putInt(value)
            is String -> h.putString(value)
            is Long -> h.putLong(value)
        }
    }.build()


 

シングルトンパターンが簡単に書ける

■Java


public class Singleton {
    private static Singleton sInstance;

    private Singleton() {}

    public synchronized static Singleton getInstance() {
        if(sInstance == null) {
            sInstance = new Singleton();
        }
        return sInstance;
    }

    public void hoge() {
        // 何らかの処理
    }
}


■Kotlin


object Singleton {
    fun hoge() {
        // 何らかの処理
    }
}


objectキーワードを使うだけでインスタンスが単一のクラスを簡単に実装できます。

最後に

Kotlinの入門におすすめの書籍をご紹介します。
下記リンクの「Kotlin入門のための助走読本」が読みやすくてよかったです。
Java経験者なら「2.2 Kotlinの味見」を読むだけでも十分わかった気になれます。
https://kotlin.connpass.com/

 

Kotlinを覚えるとJavaに戻りたくなくなりますね。仕事では両方使うので有無を言っていられないですが。

以上です。

The following two tabs change content below.

小川 智弘

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

この記事をシェアする

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