public class Node
{
Node next, child;
String data;
Node()
{
this(null);
}
Node(String s)
{
data = s;
next = child = null;
}
Node get(int n)
{
Node x = this;
for(int i=0; i<n; i++)
x = x.next;
return x;
}
int length()
{
int l;
Node x = this;
for(l=0; x!=null; l++)
x = x.next;
return l;
}
void concat(Node b)
{
Node a = this.get(this.length() - 1);
a.next = b;
}
void traverse()
{
Node x = this;
while(x!=null)
{
System.out.println(x.data);
x = x.next;
}
}
}
class IntegerNode extends Node
{
int data;
IntegerNode(int x)
{
super();
data = x;
}
}
Est-il possible que je peux avoir différents types de data
dans les deux classes afin que je puisse utiliser la classe IntegerNode
avec les chiffres et la classe Node
avec des chaînes?Différents types de données dans différentes classes
Exemple:
public class Test
{
public static void main(String args[])
{
IntegerNode x = new IntegerNode(9);
IntegerNode y = new IntegerNode(10);
x.concat(y);
x.concat(new Node("End"));
x.traverse();
}
}
En ce moment, c'est la sortie que je reçois: null
null
End
Toute explication aiderait. Merci d'avance.
Je suis d'accord que c'est une meilleure approche, mais cela ne permettrait pas à l'utilisateur de choisir des types de données au-delà de l'entier et de la chaîne? – Nerzid
Oui Oui, mais vous pourriez fournir des implémentations concrètes pour les entiers et les chaînes, si ce sont les 2 seules que vous voulez utiliser. D'ailleurs, le nom propre à * generics * est «types paramétrés». – vikingsteve
Merci. Génériques était ce que je cherchais – RJacob41