2011-12-04 27 views
3

Possible Duplicate:
Java isEmpty() undefined for String?Eclipse 1.7コンパイラで "isEmpty()が型Stringで定義されていません"

私は別のJavaプロジェクトから私のコードをコピーして、私はエラーを取得:

The method isEmpty() is undefined for the type String

しかし、元のプログラム内の文字列をチェックするための完全に罰金同じisEmpty()作品。

代わりにstr.length()==0を使用できます。しかし、これの理由は何だろうと思っていますか?

[編集] これらはすべて、同じマシンの同じEclipseコンパイラバージョン1.7で実行されます。、つまりWindows - >環境設定 - > Java - >コンパイラの場合、コンパイラのコンプライアンスレベルは1.7です。 isEmptyが動作する元のプログラムと、動作していない新しいプログラムを含む。

私の別のプロジェクトisEmptyはうまく動作します。私は新しいprojを作成し、isEmptyを持つコードの一部をコピーしましたが、このエラーが発生しています。

+0

http://stackoverflow.com/questions/1483534/java-isempty-undefined-for-string –

+1

文字列isEmpty():バージョン1.6以降 – Glenn

+1

編集について:最も重要なコンパイラのバージョンではありませんこの**は重要ですが)、Eclipseが設定されているJavaコンパイラ準拠レベルです。私の答えを見て、1.6または1.7のためにこのコンプライアンスを正しく設定するために私がリストしたメニューに従ってください。 –

答えて

8

のisEmptyは、Java 1.6からの方法であり、あなたの問題は、EclipseのJavaコンパイラ準拠レベルが< 1.6を設定持っていることです。解決策は、Eclipseの環境設定に入り、コンパイラの準拠レベルを1.6以上に設定することです。

メニュー:

Windows - >設定 - > Java - >コンパイラ。コメントで

編集
SyncMasterの状態:

... I find the " Compiler compliance level as 1.7".
... I created a new proj and copied a part of code which has isEmpty and I am getting this error

ソリューション:私は上記きたことは、「マスター」準拠レベルですが、各プロジェクトはこれを上書きすることができます。プロジェクトのコンプライアンスレベルを確認するには、Eclipseのパッケージエクスプローラでプロジェクトを右クリックし、Properties、次にJava Compilerをクリックします。次に、プロジェクト固有の設定を有効にするかどうか、またその設定は何にするかを決めることができます。

+0

申し訳ありませんが、私は誤解し、コンパイラのバージョンとして言及しました。 Windows - >設定 - > Java - >コンパイラのリンクに続いて、「コンパイラのコンプライアンスレベルは1.7」と表示されます。前に尋ねたように、このコンプライアンスレベルは、Eclipseの権利を持つすべてのプロジェクトに適用されます。 isEmptyを持つ私の別のプロジェクトがうまく動作するので。私は新しいprojを作成し、isEmptyを持つコードの一部をコピーしましたが、このエラーが発生しています。 – SyncMaster

+0

@ SyncMaster:上記の編集を参照してください。ありがとうございます。 –

+0

それが問題でした。それはそのプロジェクトのための1.5セットでした:) – SyncMaster

1

String.isEmptyはJava 6で登場しました。そのため、以前のバージョンのJava用のプログラムをコンパイルしている可能性があります。

str.length() == 0を使っても問題はありません。これは、以前のバージョンのJavaで行うこととまったく同じです。

関連する問題