2015/11/09

[android]Java8への思いやりを形に

なんだ、このタイトルは・・・。

前回、Android Studioが勝手に記述を省略して困る、という記事を書いた。
そしたら、こういうコメントをいただいた。

http://hiro99ma.blogspot.com/2015/11/android.html?showComment=1446991568776#c6414886133621877454
>Runnableが消える などは、Java8を意識したIDEの優しさみたいです。

優しさ、か。
ふっ、私にはなかなか縁のない言葉だ。

では、その思いやりを、IDEだけではなく、私が形にしてやらないと。


どうやら、これはラムダ式、とかいうものらしい。
Lambdaって書くけど、いっつもランバダと思ってしまうのよねぇ。
それはともかく、ある条件が揃うと、記述を省略できる、と私は読めた。

無名クラスで、メソッドが1つしかない、みたいなのが相当するようで、Runnableはrun()しかないため該当するようだ。
実際に書いてみると、エラーになった。

image

赤い電球アイコンが出てきて、それっぽい選択肢があったので選ぶと、エラーではなくなった。
でも、プロジェクトを閉じて開くと、またエラーになる。
そこでまたメニューを出して選ぶと、エラーじゃなくなる。
その状態でコンパイルすると、エラーになった。

image

Project Structureの、Modules>ApplicationのPropertiesタブで、"Source Compatibility"と"Target Compatibility"の候補に"8"がなかったので、手で打ち込んでみたが、やはりエラーになる。

image

なんだよー、あんたが8以上にしろっていったんじゃないかー

 

「ふん、あの葡萄は酸っぱいんだ」
私はそうつぶやいて、IDEを閉じた。