title: Java lambda only throwing expression-style instead of statement-style
body: <p>In Java (using Java 8 currently), I can write this and all will compile nice and well:</p>
  
  <pre><code>Supplier&lt;Long&gt; asd = () -&gt; {
      throw new RuntimeException();
  };
  </code></pre>
  
  <p>Yet, I cannot write this:</p>
  
  <pre><code>Supplier&lt;Long&gt; asd = () -&gt; throw new RuntimeException(); // This won't compile :(
  </code></pre>
  
  <p>Does anyone know why Java's implementation does not allow such style (expression lambda) and only the statement/code-block style lambda?</p>
  
  <p>I mean, since the lambda is <em>only</em> throwing the RuntimeException, why isn't the JDK able to infer the lambda expression as:</p>
  
  <pre><code>new Supplier&lt;Long&gt;() {
      @Override
      public Long get() {
          throw new RuntimeException();
      }
  };
  </code></pre>
  
  <p>Is this documented somewhere in the specs/docs? Is this added only in JDK > 8?</p>