2012-08-01 8 views
9

私はJavaプログラムを開発するためにEclipseを使用しています。私は、JREとJDKを1.7倍から1.6倍にダウングレードしなければなりませんでした。これですべてが1.6.x(インストールされているJREおよびJDK準拠を含む)を指しています。Eclipseのエラー "ソースレベルの文字列型の値を..に切り替えることができません"

しかし、今のEclipseはまだ示し、switch文で私にエラーを与える:

が1.7以下のソースレベルのためのString型の値に切り替えることはできません。唯一のコンバーチブルのint値またはenum定数は、以下のコードに

を許可されています。私は、コンピュータから1.7.xを削除

Switch("test") // Which is fine with 1.7.x 

、わからない、なぜそれはまだ1.7の代わりに1.6を探していますか?

答えて

2

switch(String)は、Java 7以降の構文が適用されます。 switch(String)をサポートしていない1.6があるので、eclipseはコンパイルエラーを出します。

変更switch(String)

2

switch(int)には、実際には、あなたのコードは1.6で有効ではありません。あなたは文字列のスイッチを行うことはできません。

20

Java 1.7では文字列の切り替えが導入されました!

Java 1.6にダウングレードしたときに、エラーメッセージがと予想されます。です。そのバージョンでは、プリミティブ型と列挙体をオンにするだけです。

関連質問:のJava 4では

2

とあなただけbooleancharshortbyteintタイプのスイッチを使用することができます前に。

Java 5および6では、以前のタイプに加えてEnumのスイッチを使用できます。

Java 7のみがスイッチStringをサポートしています。

13

プロジェクトを右クリックし、[プロパティ]に移動します。左側のメニューからJava Compilerを選択します。コンプライアンスレベル(1.7または1.6)を選択します。 1.7はそのメッセージを停止します。 1.6は、前にも述べたように、文字列を使用させません。

+0

感謝を代替JREを選択して! – DrupalFever

1

Antツールを使用して展開しようとしたときに同じ問題が発生しました。

私のために働いたソリューションをした

  • プロジェクトを右クリックし、[
  • 行く環境を選択した実行
  • JREシステム・ライブラリーへのパスを構築するJavaへのプロパティ
  • Go]をクリックします;私の代わりに(下図のように)jre7単純なウォークスルーのための

enter image description here

関連する問題