2016-02-19 1 views

Répondre

1

Les champs statiques de paramètres de type ne peuvent pas être utilisés avec des génériques car les champs de type statique sont partagés par des champs non statiques dans les classes. Voir l'exemple suivant:

public class Vehicle<T> { 
    private static T item; 
    // ... 
} 

Si les champs statiques de paramètres de type ont été autorisés comme ci-dessus, il serait alors source de confusion pour décider du type d'élément pour les définitions ci-dessous:

Vehicle<Car> car= new Vehicle<>(); 
Vehicle<Ship> ship= new Vehicle<>(); 
Vehicle<Train> train= new Vehicle<>(); 
Vehicle<Bus> bus= new Vehicle<>(); 

Puisque le champ statique est partagé avec voiture, bateau, train et bus, et il ne peut pas être tout en même temps, il n'est pas possible de décider du type réel de l'article.

Référence: https://docs.oracle.com/javase/tutorial/java/generics/restrictions.html#createStatic

2

Tout dans cette classe est Static et en Java, les génériques ne sont pas dans la portée d'une méthode statique. See here pour plus d'informations, et il est généralement bien discuté sur le web.

Je suppose que pour répondre à la question de savoir pourquoi, et juste pour risquer une supposition, d'adapter le modèle de la façon dont les autres sortes sont mises en œuvre.