2013-07-18 30 views
48

私はJava 7 SDKとIntelliJ IDEA IDEを使用しています。IntelliJ IDEAのプロジェクト言語レベルとは何ですか?

java version "1.7.0_11" 
Java(TM) SE Runtime Environment (build 1.7.0_11-b21) 
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode) 

まだJava 7の機能を使用することはできません。グーグルを少ししてから、プロジェクトの言語レベルを7(Diamond, ARM, multicatch etc)に設定した後、すべての機能を使用することができました。これは正確に何ですか?これは、使用しているJDKに基づいた構文と何らかの関係がある場合level 8(Lambda, annotations etc)とは何ですか? Java 8はまだリリースされていません。 Java 8はWikiによると2014年3月に予定されています。誰かがこの言語レベルの概念を説明してください。 IntelliJ Wikiでの一般的なプロジェクト設定、プロジェクト言語レベルの影響IDEによって提供さインテリセンスを探るセクション内のドキュメントを1として

答えて

69

Language level設定セットは、エディタのコードアシスタントがサポートする必要があります。たとえば、JDK 1.7を使用していて、コードがJDK 1.6と互換性があるようにするには、実際のJDKサポート(JDK 1.6の場合は6.0)よりも言語レベルを低く設定し、リファクタリング/ 1.6以降でサポートされています。コンパイラによっては、より新しい構文要素のサポートを削除するためのコンパイラオプションを与えることもできます。

Java 8 snapshotsのいずれかを試してみたい人には、8.0(あなたが推測するように、Java 8に対応しています)を利用できます。 Java 8はリリースされていないため、リリース8.0より前に言語レベル8.0が大幅に変更される可能性があります。

+0

これらの設定は、エディタ内のコードアシスタントがIDEに埋め込まれてサポートする必要がある機能を設定するのか、またはアップデートによってネットワーク経由で取り込まれる機能を設定しますか? –

+0

@AniketThakurそれはIDE自体と一緒に更新されるようですが、少なくとも私はIDEアップデートに伴われなかった変更に気づいたことはありません。 –

+0

ok gr8。ありがとう! –

3

開発中にIntelliJがJavaコードをコンパイルするときに使用されるコンパイラの動作も決定します。

この設定は、プロジェクトで利用できるコンパイラのすべての機能を示します。例えば、言語レベルをJDK 5に設定するとIntelliJはenumなどのソースコード内に存在するキーワードを認識することができます。

3

options for the javac Java compiler commandを見ると、-source-targetオプションを使用すると、別のバージョンのJavaに対してコンパイルできます。私はIntelliJの言語レベルの設定がどちらに対応しているかはわかりませんが(-source)、IntelliJには、指定されたJava言語バージョンのProject SDKフィールドで提供されたJava SDKを使用するように指示されていますSDK。

Java 7がインストールされているときに、言語レベルを6.0に設定すると、IntelliJはJava 7仕様ではなくJava 6仕様に対してコードをコンパイルします。これには、入力時に行われたリアルタイムの提案やコードチェックが含まれます。

Java 8のオプションは、Java 8のベータ版がテストに使用できるという事実のためです。

言語レベルをJDKバージョンより高いレベルに設定した場合に起こることは決して実験したことがありません。

関連する問題