title: Genereic class and static generic method
body: <p>I'm writing generic class</p>
  
  <pre><code>public class SomeClass&lt;T&gt; {
  
      public static &lt;T extends Comparable&lt;? super T&gt;&gt; T min(Collection&lt;? extends T&gt; c) {
          T min = c.iterator().next();
          for (T element : c)
              if (element.compareTo(min) &lt; 0)
                  min = element;
          return min;
      }
  
  }
  
  public class Main {
  
      public static void main(String[] args) {
          SomeClass&lt;Integer&gt;.min(Arrays.asList(1, 2, 3)); // compile-time error
          SomeClass.min(Arrays.asList(1, 2, 3)); // ok
      }
  
  }
  </code></pre>
  
  <p>In generic class <code>SomeClass</code> and generic method <code>SomeMethod</code> type-parameter <code>T</code> is the same or defference?</p>
  
  <p>Why we have compile time-error on the string <code>SomeClass&lt;Integer&gt;.min(Arrays.asList(1,2,3));</code>?</p>