しおしお

IntelliJ IDEAのことなんかを書いてます

IntelliJ12でJDK8のlambda

IntelliJ12 EAP(build:122.202)でJDK8のInspectionが使えるようになったみたいなのでお試ししてみました。
Check lambda support in IntelliJ IDEA 12 EAP build 122.202 | JetBrains IntelliJ IDEA Blogの内容を試してみただけとも言いますが。。。

環境準備

IntellijのプロジェクトのJDKと言語レベルの変更

File->Project StructureからJDKと言語レベルを8に変更します。
下の画像のようになっていればOKです。
f:id:sioiri:20120825005124p:plain

試してみよう!

無名クラスからLambdaへの変換

無名クラスのコンストラクタ呼び出し部にカーソルがある状態で、alt + enterしてあげると「Replace with lambda」と表示されています。
これを選択してあげると、無名クラスがlambdaに置き換えられます。

置き換え前

f:id:sioiri:20120825005318p:plain

置き換え後

f:id:sioiri:20120825005528p:plain

Lambdaから無名クラスへの変換

上と逆に、Lambdaから無名クラスへの変換です。
Lambdaのパラメータにカーソルがある状態で、alt + enterしてあげると「Replace lambda with anonymous class」と表示されます。これを選択すると逆変換ができます。
f:id:sioiri:20120825005920p:plain

パラメータから型情報の削除

パラメータの不要な型定義を警告で教えてくれます。また、Quick Fixから削除することもできます。

警告メッセージ

f:id:sioiri:20120825010233p:plain

Quick fix(alt + enter)メニュー

「Remove redundant types」で不要な型定義を削除できます。
f:id:sioiri:20120825010032p:plain

パラメータに型情報を挿入

パラメータの型情報を推論して挿入してくれます。

パラメータ上でalt + enterで出てくる「Expand lambda to〜」を使うと、型情報を挿入できます。
f:id:sioiri:20120825010708p:plain

これらのQuick Fixをオフにする方法

Settings -> Inspectionsからできます。下の画像のようにlambdaでフィルタを掛けてあげると設定部を探しやすくなります。
オフにしたい場合は、チェックを外してあげます。
f:id:sioiri:20120825011246p:plain

おわり。