由于不可访问语句,此代码无法编译



我已经尽我最大的努力用另一种方式复制了这个,但似乎只有这一行给出了错误(请原谅评论):

return foo.containsKey(MARKET_DATA) && !foo.get(MARKET_DATA).isMissing();/*mapping code can inject a Missing type*/;

然而,我输入这个,它给了我一个错误:"不可达的声明"。为什么会这样?

如果删除注释,这一点就很清楚了:

return foo.containsKey(MARKET_DATA) && !foo.get(MARKET_DATA).isMissing();;

请注意末尾的两个分号:空语句在Java中是允许的,但是这个特殊的空语句是不可访问的,因为前面的语句总是 return

(为避免疑义,注释不应以;结尾)

这个问题是因为;之后的评论:/*mapping code can inject a Missing type*/;

编译器认为在return语句之后还有另一个语句。如果你在注释后删除;,它将正常工作(或者把它放在注释中)。

根据Java规范,;是一个空语句。return

后面有一个语句

最新更新