Java Generics - Sin campo estático

Al usar genéricos, los parámetros de tipo no pueden ser estáticos. Como la variable estática se comparte entre los objetos, el compilador no puede determinar qué tipo utilizar. Considere el siguiente ejemplo si se permitieran parámetros de tipo estático.

Ejemplo

package com.tutorialspoint;

public class GenericsTester {
   public static void main(String[] args) {
      Box<Integer> integerBox = new Box<Integer>();
	  Box<String> stringBox = new Box<String>();
	  
      integerBox.add(new Integer(10));
      printBox(integerBox);
   }

   private static void printBox(Box box) {
      System.out.println("Value: " + box.get());
   }  
}

class Box<T> {
   //compiler error
   private static T t;

   public void add(T t) {
      this.t = t;
   }

   public T get() {
      return t;
   }   
}

Como stringBox y integerBox ambos tienen una variable de tipo estático inicial, su tipo no se puede determinar. Por tanto, no se permiten parámetros de tipo estático.