フリーランスになって早3か月、一度なってしまえば結構なんとかなるもんだな、という気持ちでいる小川です。
仕事はまだリモートワークですが、休日はそこそこ外出して人と会う機会が増えてきました。
インドア体質の僕は今ぐらいの塩梅がいいですね。
さて、この記事は前回の続きで、引き続きKotlinのいい所の紹介です。
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に戻りたくなくなりますね。仕事では両方使うので有無を言っていられないですが。
以上です。