I&#39;m trying to avoid a &quot;solution&quot; that allows this puzzler to be puzzling:<br><br><div style="margin-left: 40px; font-family: courier new,monospace;"><b>#int() two = null;<br>synchronized int four() {<br>  if (two == null) two = #() { return 2; };<br>

  return two() + two();<br>}<br>public static void main(String[] args) {<br>  System.out.println(four());<br>}<br></b></div><br>What does this do?<br><ol><li>prints &quot;4&quot;</li><li>throws an exception</li><li>prints &quot;2&quot;</li>

<li>Sometimes prints &quot;2&quot;, sometimes throws an exception</li><li>does not compile<br></li></ol>If you make statement lambdas transparent, the answer is choice 4: the method prints &quot;2&quot; on its first execution, and throws an exception (unmatched transfer) thereafter.<br>

<br>Cheers,<br>Neal<br><br>