15

私はEclipseを使用してJavaプログラムを開発しています。JREとJDKを1.7倍から1.6倍にダウングレードする必要がありました。これで、すべてが1.6.xを指します(インストールされているJREおよびJDK準拠を含む)。

しかし、今でもEclipseはswitchステートメントにエラーを出し、次のことを示しています。

1.7未満のソースレベルのString型の値をオンに切り替えることはできません。変換可能なint値または列挙型定数のみが許可されます

以下のコードで:

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

コンピューターから1.7.xを削除しましたが、1.6ではなく1.7を探している理由がわかりません。

4

7 に答える 7

21

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

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

関連する質問:

于 2012-08-01T19:24:45.420 に答える
18

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

于 2015-01-27T20:26:33.350 に答える
3

実際、あなたのコードは 1.6 では有効ではありません。String に対して switch を実行することはできません。

于 2012-08-01T19:24:22.773 に答える
2

switch(String)Java7以降で適用可能な構文です。switch(String)をサポートしない1.6があるため、eclipseでコンパイルエラーが発生します。

switch(String)に変更switch(int)

于 2012-08-01T19:24:00.373 に答える
2

Java 4 以前では、 switch on booleancharshort、型しか使用できませんでした。byteint

EnumJava 5 および 6 では、以前の型に加えてswitch on を使用できました。

また、switch on をサポートしているのは Java 7 だけStringです。

于 2012-08-01T19:27:16.280 に答える
2

jdk とコンパイラの両方の準拠レベルを変更します。 ここに画像の説明を入力

于 2020-01-30T07:01:21.257 に答える