Java Generics - brak pola statycznego

Używając typów ogólnych, parametry typu nie mogą być statyczne. Ponieważ zmienna statyczna jest dzielona między obiektami, kompilator nie może określić, jakiego typu użyć. Rozważ poniższy przykład, jeśli dozwolone były statyczne parametry typu.

Przykład

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;
   }   
}

Ponieważ stringBox i integerBox mają zmienną typu statycznego, nie można określić jej typu. Dlatego statyczne parametry typu nie są dozwolone.