キャスト演算子による交差型のサポート

SE8の言語仕様の変更の一つに、キャスト演算子による交差型のサポートがある。

交差型というのは、型を&でつなげたもののこと。今までは、ジェネリクスの型パラメータにおける型境界にだけ使用することができた。たとえば、Fooのような記述になる。

その交差型がキャスト演算子でも使えるようになった。

   (Type1 & Type2) expr;

&で繋げられる型は3つでも4つでも問題ない。
ただし、一つ目の型は参照型で、二つ目以降の型はインターフェースでなければならない。

たとえば次のコードがあるとする。

  interface SerializeableF extends F, Serializable {}
  method((SerializableF) () -> {});

これを次のように簡潔に書くことができる。

  method((F & Serializable) () -> {});

参考:
http://d.hatena.ne.jp/bitter_fox/20140319/1395221764

投稿者 java

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です