Hallo ich soll eine gegebene Klasse in eine generische Klasse umschreiben...
Aufgabe:
Schreiben Sie die obige Klasse als generische Klasse mit einem Typparameter für das Attribut item. Als Listeneinträge sollen nur Unterklassen der Klasse Number verwendet werden können.
Meine Frage ist wie ich die Methode "Summe" generisch umschreibe und welchen Typparameter ich "List" in meiner main Methode geben muss
(Ich weiß auch nicht ob meine Lösung bis jetzt überhaupt stimmt
)
gegebene Klasse:
Meine Klasse:
Aufgabe:
Schreiben Sie die obige Klasse als generische Klasse mit einem Typparameter für das Attribut item. Als Listeneinträge sollen nur Unterklassen der Klasse Number verwendet werden können.
Meine Frage ist wie ich die Methode "Summe" generisch umschreibe und welchen Typparameter ich "List" in meiner main Methode geben muss
(Ich weiß auch nicht ob meine Lösung bis jetzt überhaupt stimmt
gegebene Klasse:
Code:
public class Test {
public static void main(String[] args) {
Liste l = new Liste();
l.insert(0);
l.insert(-8);
l.insert(3);
l.insert(-5);
l.insert(3);
System.out.println(l);
System.out.println(l.summe());
}
}
class Liste {
private int item = -1;
private Liste next;
public void insert(int x) {
Liste l = new Liste();
if(next == null || next.item > x) {
l.item = x;
l.next = next;
this.next = l;
} else {
next.insert(x);
}
}
public String toString() {
return next == null ? "." : " ? " + next.item + next;
}
public int summe() {
if(next == null) {
return 0;
}
int i = next.summe();
return i + next.item;
}
}
Meine Klasse:
Code:
public class Test {
public static void main(String[] args) {
Liste <T> l = new Liste<T>(); // Fehler
l.insert(0);
l.insert(-8);
l.insert(3);
l.insert(-5);
l.insert(3);
System.out.println(l);
System.out.println(l.summe());
}
}
class Liste <T extends Number & Comparable<T>>{
private T item = (T) Integer.valueOf(-1);
private Liste<T> next;
public void insert(T x) {
Liste<T> l = new Liste<T>();
if(next == null || next.item.compareTo(x) > 0) {
l.item = x;
l.next = next;
this.next = l;
} else {
next.insert(x);
}
}
public String toString() {
return next == null ? "." : " ? " + next.item + next;
}
public int summe() {
if(next == null) {
return 0;
}
int i = next.summe();
return i + next.item;
}
}