Tin*_*iny 9 java loops if-statement
Java中的以下方法编译得很好.
public String temp() {
while(true) {
if(true) {
// Do something.
}
}
}
Run Code Online (Sandbox Code Playgroud)
该方法有一个显式的返回类型,尽管它编译得很好但java.lang.String没有return语句.但是,以下方法无法编译.
public String tempNew() {
if(true) {
return "someString";
}
}
Run Code Online (Sandbox Code Playgroud)
发出编译时错误,指示" 缺少return语句 ",即使使用该if语句指定的条件始终为true(它具有boolean永远不会通过反射更改的常量).为了成功编译,必须修改该方法,如下所示.
public String tempNew() {
if(true) {
return "someString";
} else {
return "someString";
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public String tempNew() {
if(true) {
return "someString";
}
return "someString";
}
Run Code Online (Sandbox Code Playgroud)
关于while循环的第一种情况,第二种情况似乎是合法的,尽管它无法编译.
在第二种情况下是否有一个原因超出了编译器的一个特性.
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |