重複の可能性:
コンパイラーは、return ステートメントが欠落している状態に到達することは不可能であるにもかかわらず、「return ステートメントが欠落している」と不平を言う
Java の次のメソッドは正常にコンパイルされます。
public String temp() {
while(true) {
if(true) {
// Do something.
}
}
}
メソッドには、正常にコンパイルされますが、ステートメントjava.lang.String
のない明示的な戻り値の型があります。return
ただし、次のメソッドはコンパイルに失敗します。
public String tempNew() {
if(true) {
return "someString";
}
}
ステートメントで指定された条件が常に trueであっても、 " missing return
statement "を示すコンパイル時エラーが発行されます (リフレクションによっても変更されることのない定数があります)。コンパイルを成功させるには、メソッドを次のように変更する必要があります。if
boolean
public String tempNew() {
if(true) {
return "someString";
} else {
return "someString";
}
}
また
public String tempNew() {
if(true) {
return "someString";
}
return "someString";
}
while
ループの最初のケースに関しては、2 番目のケースはコンパイルに失敗しますが、合法であるように見えます。
コンパイラの機能の1つを超えた2番目のケースには理由がありますか?