dポイントプレゼントキャンペーン実施中!

お世話になります。
下記のswitchのソースで文字列の値を
判定したいのですが


String lot = 収録状況表示;
switch (lot) {

case "1": out.print("収録!"); break;
case "2": out.print("未収録!"); break;
default: out.print(" "); break;

eclipseで機能しないPCがあります。
考えられる原因はなにかありますでしょうか??

因みに
きのうしないPCは

switch (lot) {の箇所に
Cannot switch on a value of type String for source level below 1.7. 変換可能な int 値または enum
定数のみが許可されています
と表示されます。

機能しているPC  java -version "1.7.0_02
Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
Java HotSpot(TM) Client VM (build 22.0-b10, mixed mode, sharing)

機能していないPC   
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)

以上よろしくお願い致します。

A 回答 (3件)

JavaのSwitch文ではStringはつかえない仕様なので旧バージョンでエラーが出ないのはチェック漏れでは?

この回答への補足

ご回答ありがとうございます。
原因が分かればいいのですが
チェック漏れかは分かりません。
少ない条件であればif文で代用できるのですが
条件が多い場合Switch文の方が楽なのかと・・・

補足日時:2012/05/23 10:17
    • good
    • 0
この回答へのお礼

string型で宣言してあるので
結果を出したい部分の配列だけを
下記のソースのように
stringからintに戻して
解決致しました。
調べるきっかけとなる
アドバイスどうもありがとうございました。


int lot = Integer.valueOf(収録状況表示).intValue();

switch (lot) {

case 1: out.print("収録!"); break;
case 2: out.print("未収録!"); break;
default: out.print(" "); break;}

お礼日時:2012/05/23 10:39

「eclipseで機能しない」ってどういう意味なんでしょうか? 「Eclipse でなければちゃんと動作する」んですか?

この回答への補足

使用環境を説明しただけになります。

補足日時:2012/05/23 10:34
    • good
    • 0

原因は表示されたとおり int値または enum定数のみが許可されているからStringはつかえない

この回答への補足

アドバイスありがとうございます。
たしかにエラーメッセージ通りで
OKWavex様のおっしゃる通りだと思いますが
機能してるPCでまったく同じソースを記述して
結果が出るのはなぜなのでしょう。
作業を別のPCでやる場合があるので解決したいのですが・・・

補足日時:2012/05/23 09:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!