package generique; public class Box { private T t; public void set(T t) { this.t = t; } public T get() { return t; } public static void main (String args []) { // Déclaration et new avec le type Box integerBox = new Box(); integerBox.set(new Integer (12)); // integerBox.set("Bonjour"); // ERREUR DE COMPILATION : // The method set(Integer) in the type Box is not applicable // for the arguments (String) Integer i = integerBox.get(); // PAS LA PEINE DE FAIRE UN CAST // Ou alors avec le “diamant” et une inférence de type Box integerBox2 = new Box<>(); integerBox2.set(new Integer (33)); Integer j = integerBox2.get(); // Le type “brut” : Box Box rawBox = new Box(); rawBox.set(new Integer (35)); // Integer k = rawBox.get(); ERREUR DE COMPILATION : // Type mismatch: cannot convert from Object to Integer int k = (Integer) rawBox.get(); } }