title: Java ternary operator vs if/else in <JDK8 compatibility
body: <p>Recently I'm reading the source code of Spring Framework.  Something I can't understand goes here:</p>
  
  <pre><code>public Member getMember() {
      // NOTE: no ternary expression to retain JDK &lt;8 compatibility even when using
      // the JDK 8 compiler (potentially selecting java.lang.reflect.Executable
      // as common type, with that new base class not available on older JDKs)
      if (this.method != null) {
          return this.method;
      }
      else {
          return this.constructor;
      }
  }
  </code></pre>
  
  <p>This method is a member of class <code>org.springframework.core.MethodParameter</code>. The code is easy to understand while the comments are hard.</p>
  
  <blockquote>
    <p>NOTE: no ternary expression to retain JDK &lt;8 compatibility even when using the JDK 8 compiler (potentially selecting <code>java.lang.reflect.Executable</code> as common type, with that new base class not available on older JDKs)</p>
  </blockquote>
  
  <p>What's the difference between using ternary expression and using <code>if...else...</code> construct in this context?</p>