LoginSignup
6
1

More than 5 years have passed since last update.

Java8の型キャストを綺麗に!

Posted at

Java8の型キャストを綺麗に!

タイトルのとおりです。私は Javaの旧来の型キャストの構文があまり好きではないです。
動的なデータ操作なのに謎の構文を使わないといけないところがね。C言語由来でしょうか?
こういうのは関数的に書きたいところ。
とりあえずまずは例から。下記のような 2通りの書き方があると思います。

SomeClass instance = (SomeClass) anotherClassInstance;          // 1
SomeClass instance = SomeClass.class.cast(anotherClassInstance) // 2

1番は避けたいやつですね、2番はいいんですが1行が長くなりがちなのが玉に瑕。
そこでこんなのを考えました。

public class As {
    public static <T> T of(Object value) {
        return (T) value;
    }
}

これを使うと下記のように割と綺麗に書けます。

SomeClass instance = As.of(anotherClass);

lombok を使っているならこんな風です。

val instance = As.<SomeClass>of(anotherClass);

以上!

6
1
2

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
6
1