Compiler complains about “missing return statement” even though it is impossible to reach condition where return statement would be missing

后端 未结 2 486
青春惊慌失措
青春惊慌失措 2020-12-03 10:03

In the following method, the compiler complains about a missing return statement even though there is only a single path through the method, and it contains a

2条回答
  •  醉酒成梦
    2020-12-03 10:45

    The reason why the compiler is complaining has to do with this key point from Section 14.21 of the Java Language Specification, discussing unreachable statements:

    Except for the special treatment of while, do, and for statements whose condition expression has the constant value true, the values of expressions are not taken into account in the flow analysis.

    Note that if is not one of the statements that has special handling of true constant conditions. The reason it is excluded from this special handling is to allow if to be used as a form of conditional compilation, as Dave Newton explained in his answer.

提交回复
热议问题