title: how is the lambda expression in bold below became valid even if only parenthesis is the argument
body: <p>how is the lambda expression in bold below became valid even if only parenthesis is the argument</p>
  
  <pre><code>public class TargetTypeDemo {
      static void invoke(Runnable r) {
          r.run();
      }
  
      static &lt;T&gt; T invoke(Callable&lt;T&gt; c) throws Exception {
          return c.call();
      }
  
      /**
       * @param args the command line arguments
       * @throws java.lang.Exception
       */
      public static void main(String[] args) throws Exception {
          String s = **invoke(() -&gt; "done")**;
  
          System.out.println(s);
      }
  
  }
  </code></pre>