2016-06-24 8 views
-2

は、ここに私の方法なぜ私のメソッドでこの文字列は未定義ですか?

public String isOpen() { 
    if (fridge.isOpen()) { 
     return String("The refrigerator is open."); 
    } 
} 

であり、私は戻りライン上でこのエラーを取得します。 The method String(String) is undefined for the type Kitchen

なぜ文字列が定義されていないのかわかりません。キッチンと呼ばれるクラスの中にいるかどうか気にしないJavaの普遍的な部分ですか?

+4

Javaにはコア言語の一部であるStringクラスがありますが、それは自動的にすべてのクラスに存在する "String"というメソッドがあるわけではありません。文字列を返す場合は、文字列「;」を返すだけです。 – azurefrog

+5

'return new String(...)'と書いていましたか?タイプミスとして閉じる投票。また、実行パスの1つが値を返さないため、別のコンパイルエラーが発生します。 –

+0

これを試してください:新しい文字列を返します( "冷蔵庫が開いています。"); – Vish

答えて

0

文字列はメソッドではありません、クラスです。したがって、Stringを返す場合は、Stringクラスのコンストラクタを使用するか、より単純な方法を使用する必要があります。単に ""の間にテキストを返します。

ので、代わりに

return String("The refrigerator is open."); 

return "The refrigerator is open."; 

はそれが役に立てば幸い:)あなたは新しい文字列を返すようにしようとしている

1

、右か?コンストラクターを呼び出すときは、キーワードnewを使用する必要があります(正しく動作します)。

return new String("The refrigerator is open."); 

何を行っていることは技術的に正しいですが、Javaはこの種のもののためにいくつかのシンタックスシュガー(人々のために、それはよりよい作るために、言語の規則に違反する構文)を提供するので、あなただけ書くことができます:

return "The refrigerator is open."; 
関連する問題