我已经尽力以另一种方式重现这一点,但似乎只有这一行才会出错(请原谅评论):
return foo.containsKey(MARKET_DATA) && !foo.get(MARKET_DATA).isMissing();/*mapping code can inject a Missing type*/;
但是我键入它会给我一个错误:"无法访问的语句"。这是为什么?
答案 0 :(得分:10)
如果删除评论,则很明显:
return foo.containsKey(MARKET_DATA) && !foo.get(MARKET_DATA).isMissing();;
请注意最后的两个分号:Java中允许空语句 ,但这个特定的空语句无法访问,因为前一个语句总是 return
s。
(为避免疑义,评论不应以;
终止。
答案 1 :(得分:2)
问题是因为评论后的;
:
/*mapping code can inject a Missing type*/
;
编译器认为在return语句之后还有另一个语句。如果您在评论后删除;
,它将正常工作(或将其放在评论中)。
答案 2 :(得分:0)
根据Java specs ;
是一个空语句。所以返回后有一个声明