web-dev-qa-db-ja.com

Java 8ラムダは機能しませんが、Java 8

Java 8が正式にリリースされました。EclipseLuna 4.4が動作する必要があるようです。Lunaをダウンロードしてインストールしました。他のすべてのプロジェクトもインポートしました。 Java 8を試してみたいと思いました。最初にインストールする必要があることがすぐにわかりました。インストール後、JRE 8をデフォルトに変更することができました。

私の質問は、なぜ新しい日付と時刻のAPIを使用できるのに、新しいLambda Expressionsを使用できないのかということです。

役に立つかもしれない情報:

  • 私はMacを使用しています
  • 時間APIが機能することは非常に確かです(小さなJava Doc Boxは1.8以降だと言っています)

Java 8を含めてEclipseをインストールしなかったという事実と関係があるでしょうか?

26
Kametrixom

まず、Lunaを使用する必要はありません-うまく機能する Keplerの機能パッチ があります。

第二に、Java Compilerダイアログの[ソース互換性]部分は1.8である必要があります。それ以外の場合、libraryJava 1.8の機能、language機能を使用することはできません。 (ラムダだけではありません-メソッド参照、インターフェースの静的メソッド、デフォルトのメソッドなどがあります。)ここを参照してください。

Java 1.8 compiler settings

1.8のライブラリ機能を使用したいwantが、1.7以前のソース/クラスファイルの互換性を維持することはめったにありませんが、さまざまなJREで実行する必要があるコードを書いていたが、Java 1.8を必要とし、以前のJREでは使用されなかった機能実装をいくつか持つことができる場合に便利です。

63
Jon Skeet