title: Why will the compiler accept an invalid syntax call (<?>method) when statically called?
body: <p>Is there a reason that a Java Generic Method cannot be called without the Static/Instance reference before the method? Like "case 2" and "case 5" on the example code.</p>
  
  <p>In other words, why can we call a normal method without the static/instance reference (like in "case 3") and in Generic Methods we can't?</p>
  
  <pre><code>public class MyClass {
  
  public static void main(String[] args) {
  
      MyClass.&lt;String&gt;doWhatEver("Test Me!"); // case 1
  
      &lt;String&gt;doWhatEver("Test Me2!"); // case 2 COMPILE ERROR HERE
  
      doSomething("Test Me 3!"); // case 3 (just for compare)
  
      new MyClass().&lt;String&gt;doMoreStuff("Test me 4"); // case 4
  
  }
  
  public void doX(){
      &lt;String&gt;doMoreStuff("test me 5"); // case 5 COMPILE ERROR HERE
  }
  
  
  public static &lt;T&gt; void doWhatEver(T x){
      System.out.println(x);
  }
  
  public static void doSomething(String x){
      System.out.println(x);
  }
  
  public &lt;T&gt; void doMoreStuff(T x){
      System.out.println(x);
  }
  
  }
  </code></pre>