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