On peut utiliser la classe Object pour transformer une structure de données en une structure générique, par exemple les arbres à noeuds de type int en arbres à noeuds de types référencés quelconques. Il suffit de remplacer int par Object. La définition de la classe devient :
package structures; class ArbreBinaire { Object étiquette; ArbreBinaire gauche, droit; ArbreBinaire(Object étiquette, ArbreBinaire gauche, ArbreBinaire droit) { this.étiquette = étiquette; this.gauche = gauche; this.droit = droit; } // ... }
On obtient ainsi des arbres génériques hétérogènes (ce qui signifie que les étiquettes ne sont pas nécessairement du même type). Pour passer un argument d'un type primitif à une méthode demandant un objet, on a recours aux classes enveloppantes Integer, Double, etc. :
ArbreBinaire t = new ArbreBinaire("toto", new ArbreBinaire(new Integer(3), null, null), new ArbreBinaire(new Double(0.4), null, null));
Rappelons que les chaînes littérales, comme "toto", sont des objets de classe String.