Generics - CompareTo

Cassy3

Mitglied
Hier noch eine Aufgabe, die ich einfach nicht verstehe.

Aufgabe:
Zunächst soll die Klasse GenericElement um einen generischen Typparameter T
erweitert werden. Nun soll das Attribut value vom Typ T sein. Der Konstruktor und die
Methoden müssen entsprechen angepasst werden.
Der Typ T soll auch Comparable sein. Damit value mittels compareTo mit einem
anderen value verglichen werden kann.
Nun soll Klasse das Interface Comparable implementieren. Hierbei soll das Interface
Elemente vom Typ GenericElement<T> annehmen.
Implementieren Sie die compareTo Methode die durch das Interface vorgegeben wird so
das value von diesem Objekt mit dem value aus dem Argument der compareTo
Methode verglichen wird und das Ergebnis zurückgegeben wird.


Mein Code bis jetzt:
Java:
public class GenericElement <T extends Comparable <T>> {    // Die Klassendeklaration muss noch angepasst werden.
    
    private GenericElement <T> next;
    private T value;  // Soll generisch werden.
    
    public GenericElement(T value, GenericElement<T> next) {
        this.value = value;
        this.next = next;
    }
    
    public GenericElement<T> getNext() {    
        return next;
    }
    
    public void setNext(GenericElement<T> next) {
        this.next = next;
    }
    
    public T getValue() {
        return value;
    }
    
    public void setValue(T value) {
        this.value = value;
    }
    // Die Methode compareTo soll hier implementiert werden.
    // Zu bearbeitender Bereich:
        
    public int compareTo (T o) {
        return this.value.compareTo(o);    
    }
    
    //Ende des zu bearbeitenden Bereichs
}

So, wie ich das gemacht habe, kommt diese Fehlermeldung -> The method compareTo(Integer) in the type GenericElement<Integer> is not applicable for the arguments (GenericElement<Integer>)

Ich hoffe, ihr könntet mir Helfen und mir sagen, was ich hier falsch mache.. Ich verzweifle leider auch hier schon länger an der Lösung..
Ich danke euch schonmal für jede Antwort :)
 
Zuletzt bearbeitet von einem Moderator:

Cassy3

Mitglied
Und ich glaube ich mache es immer schlimmer

1. Zeile:
public class GenericElement <T extends Comparable <GenericElement <T>>>
Funktioniert leider auch nicht
 

Robert Zenz

Top Contributor
Java:
public int compareTo (T o) {
    // ...
}

Na schau, T hast du definiert als Integer, als das sieht dann so aus:

Java:
GenericElement<Integer> integerTest = new GenericElement<>(...);

public class GenericElement<Integer> {
    public int compareTo (Integer o) {
        // ...
    }
}

Dein Verstaendnisproblem hier ist dass du definiert hast das T vergleichbar sein soll, aber nicht GenericElement. Deine compareTo muss natuerlich eine GenericElement Instanz uebernehmen als Parameter.
 

Cassy3

Mitglied
Ich danke dir schonmal vielmals für deine Antwort!
Also an sich mach das Programm jetzt, was es soll.
Ich habe die CompareTo-Methode jetzt so umgeschrieben:

public int compareTo (GenericElement<T> o) {
return this.value.compareTo(o.value);
}

Jedoch sagt mein Überprüfungssystem noch das:

Fehler in Comparable - GenericElement: : Die Klasse GenericElement implementiert noch nicht das Interface Comparable
 

Robert Zenz

Top Contributor
Jedoch sagt mein Überprüfungssystem noch das:

Fehler in Comparable - GenericElement: : Die Klasse GenericElement implementiert noch nicht das Interface Comparable
Das ist ein Problem von dem Tool das du da verwendest. Aber ja, es stimmt schon:

Nun soll Klasse das Interface Comparable implementieren.

Vermutlich ist hier gemeint dass auch GenericElement die Schnittstelle implementieren beziehungsweise sich von dieser ableiten soll, das musst du halt noch machen.
 

Cassy3

Mitglied
Java:
    public int compareTo (GenericElement<T extends Comparable> o) {

        return this.value.compareTo(o.value);  

    }

Ich danke auch dir vielmals für deine Antwort, aber so funktioniert das bei mir leider auch nicht, war mache ich da Falsch? :/


Java:
    public int compareTo (GenericElement <T extends Comparable> o) {
        return this.value.compareTo(o.value);   
    }
// habe das jetzt auch genau so in meinen Code übernommen, aber leider
// wird es Rot angezeigt.
 
M

Mart

Gast
hat ein Objekt das NUR das comparable interface implementiert denn das public attribut "value" ? ich denke nicht
mein Fehler... das hast du ja in der klasse...
 

Cassy3

Mitglied
Es tut mir leid, ich verstehe nur noch Bahnhof :/
Nur so noch am Rade gesagt, ich bin echt ne Niete im Programmieren und bin echt froh, wenn ihr mir hier bei der Lösung echt helfen könntet :)
 
M

Mart

Gast
du sagst dein GenericElement braucht irgendeine Klasse die Comparable implementiert und ich nehme an dass du da ein GenericElement überGEben willst ... ja nur dein GenericElment iimplementiert das interface aber nich
 

Cassy3

Mitglied
Leider habe ich echt keinen Schimmer, wie GenericElement das implementieren soll.

Oben in der Klassendeklaration denke ich mal nicht, oder? .. bei meinem Glück genau da oben :D

Oder wie würde das dann aussehen?
 
M

Mart

Gast
Java:
public class GenericElement <T extends Comparable <T>> implements Comparable
ich lehn mich mal ausm fenster und behaupte ewnn du es ausprobiert hättest.... du hättest es an 2 stellen einfügen können... vor und nach dem generic ... wenns net rot wird wirds da wohl die richtige stelle sein ;) ... danach kannst googlen warum es die richtige stelle ist
 

Cassy3

Mitglied
Java:
public class GenericElement <T extends Comparable <T>> implements Comparable
ich lehn mich mal ausm fenster und behaupte ewnn du es ausprobiert hättest.... du hättest es an 2 stellen einfügen können... vor und nach dem generic ... wenns net rot wird wirds da wohl die richtige stelle sein ;) ... danach kannst googlen warum es die richtige stelle ist

Leider Meckert Eclipse hier immer noch rum und in dem Überprüfungssystem gibt's 0 Punkte :/

Also, das Programm funktioniert auch so weiterhin, aber leider scheint da immer noch etwas nicht korrekt zu sein :/
 
M

Mart

Gast
Wenn ich das vor das <T extends Comparable <T>> setze wirds ganz falsch :eek:
jap weil generics so geparsed werden
Java:
KLASSE < GENERIC TYP FÜR DIE VORHERIGE KLASSE >
dh wenn du das implements for dem generic typ setzt gilt der generic typ für das Comparable interface
 
M

Mart

Gast
Java:
public class GenericElement <T extends Comparable <T>> implements Comparable<T> {

  @Override
  public int compareTo(T o) {
    // TODO Auto-generated method stub
    return 0;
  }

}
so wäre es dann richtiger

dann meckert eclipse auch nich mehr
 

Cassy3

Mitglied
Java:
public class GenericElement <T extends Comparable <T>> implements Comparable<T> {

  @Override
  public int compareTo(T o) {
    // TODO Auto-generated method stub
    return 0;
  }

}
so wäre es dann richtiger

dann meckert eclipse auch nich mehr


Es tut mir so unfassbar leid, dass ich so nerve, aber ich bin leider wieder bei meinem Anfangsproblem, wo Eclipse sagt: The method compareTo(Integer) in the type GenericElement<Integer> is not applicable for the arguments (GenericElement<Integer>)


So sieht meine Methode aus:
Java:
    @Override
    public int compareTo (T o) {
        return this.value.compareTo(o);   
    }
 
M

Mart

Gast
implementiert dein Integer denn Comparable? du sagst ja "das ding was dann kommt muss comparable haben" ... ja hat denn die Klasse Integer "comparable" interface implementiert??
 

Cassy3

Mitglied
Java:
public class GenericElement <T extends Comparable <T>> implements Comparable <GenericElement<T>> { 
    
    // so musste das ganze Aussehen. :) Ich danke euch auf jeden Fall dennoch sehr für eure Hilfe
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Generics machen mich verrückt Java Basics - Anfänger-Themen 8
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
MarvinsDepression Datentypen Generics: Erste Berührungen Java Basics - Anfänger-Themen 6
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
districon Generics implementieren Java Basics - Anfänger-Themen 2
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Hilfe bei Generics Java Basics - Anfänger-Themen 11
G Generics Compilerfehler Java Basics - Anfänger-Themen 6
G Generics Methoden Java Basics - Anfänger-Themen 7
G Generics Java Basics - Anfänger-Themen 3
L Generics Tripel Java Basics - Anfänger-Themen 26
W Fragen zu Generics Java Basics - Anfänger-Themen 14
S Hilfe. Generics und BiFunctions Java Basics - Anfänger-Themen 10
X Wie Generics richtig benutzen ? Java Basics - Anfänger-Themen 5
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
I Java Generics factory method Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
I Generics und Comparable Java Basics - Anfänger-Themen 14
G Generics mit ? und Diamantoperator Java Basics - Anfänger-Themen 4
G Generics: Wildcard ? Java Basics - Anfänger-Themen 12
D Generics methode Java Basics - Anfänger-Themen 2
I Frage zu Generics und Wildcards Java Basics - Anfänger-Themen 2
N Generics und Casting eines Objekts Java Basics - Anfänger-Themen 1
A Generics Java Basics - Anfänger-Themen 6
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
W Generics - Typ zurückbekommen Java Basics - Anfänger-Themen 4
Dimax Erste Schritte Generics von Profis leicht erklärt Java Basics - Anfänger-Themen 7
C Warum funktioniert 'instanceof' bei generics nicht? Java Basics - Anfänger-Themen 4
J Collections Generics: Typ wird nicht erkannt Java Basics - Anfänger-Themen 7
D Generics ArrayList: Bug im Quellcode Java Basics - Anfänger-Themen 14
C Generics Java Basics - Anfänger-Themen 8
M Generics getter und setter Methoden Java Basics - Anfänger-Themen 4
T Generics in Java... Java Basics - Anfänger-Themen 9
J Generics Java Basics - Anfänger-Themen 3
J Generics Datentypen vergleichen Java Basics - Anfänger-Themen 16
V Generics / eigene Liste Java Basics - Anfänger-Themen 4
O Generics - Implementierung Java Basics - Anfänger-Themen 7
Shizmo Frage zu Generics Java Basics - Anfänger-Themen 3
F Multiple Generics Java Basics - Anfänger-Themen 10
G Datentypen verschiedene Objekte in eine ArrayList, Generics Java Basics - Anfänger-Themen 2
H Typsicherheit/Generics Java Basics - Anfänger-Themen 1
U Java generics funktioniert nicht Java Basics - Anfänger-Themen 0
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
S Generics und Comparable Interface Java Basics - Anfänger-Themen 5
A Generics Java Basics - Anfänger-Themen 4
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
R Compiler-Fehler Generics Problem Java Basics - Anfänger-Themen 2
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
K Generics bei Klassen- und Interfacedeklarationen Java Basics - Anfänger-Themen 3
D toArray und Generics Java Basics - Anfänger-Themen 2
D Zwei Generics beim Überladen von Methoden Java Basics - Anfänger-Themen 3
C Erste Schritte Filter für Generics oder ähnliches Java Basics - Anfänger-Themen 2
M Frage zu Generics-Deklaration Java Basics - Anfänger-Themen 5
S Frage zu Collection-Generics in Subklassen Java Basics - Anfänger-Themen 6
J Java Generics - Frage zu Types Java Basics - Anfänger-Themen 2
M <T> Generics Java Basics - Anfänger-Themen 7
B Interface Generics: prüfen ob Interface deklariert wird Java Basics - Anfänger-Themen 18
T Polymorphie Generics-Problem Java Basics - Anfänger-Themen 2
B Hilfe beim Verständnis zu Generics Java Basics - Anfänger-Themen 7
J Array Generics Java Basics - Anfänger-Themen 3
J Generics casten Java Basics - Anfänger-Themen 14
J Generics wildcard Java Basics - Anfänger-Themen 6
E Listen und Generics Java Basics - Anfänger-Themen 9
X Generics Java Basics - Anfänger-Themen 6
M Datei einlesen mit generics? Java Basics - Anfänger-Themen 9
D Warum sind Generics mit Vorsicht zu genießen? Java Basics - Anfänger-Themen 6
M OOP Mit Generics auf Methoden zugreifen? Java Basics - Anfänger-Themen 10
S Generics Java Basics - Anfänger-Themen 4
G Generics kein Zugriff auf getter eines Objekts Java Basics - Anfänger-Themen 4
L Datentypen Problem mit Generics und null Java Basics - Anfänger-Themen 6
E Klassen java.util.ArrayList<E> als Generics Java Basics - Anfänger-Themen 16
W Interface Problem mit Generics Java Basics - Anfänger-Themen 2
M OOP Generics und Wildcards Java Basics - Anfänger-Themen 3
D Generics - Warnmeldungen Java Basics - Anfänger-Themen 2
M Polymorphie generics einsteigerprobleme Java Basics - Anfänger-Themen 3
D Vererbung Generics und Vererbung Java Basics - Anfänger-Themen 8
C Generics Array Java Basics - Anfänger-Themen 43
D Fehler mit generics Java Basics - Anfänger-Themen 10
S Generics - CaseInsensitiveMap selber schreiben? Java Basics - Anfänger-Themen 5
K Datentypen Generics Java Basics - Anfänger-Themen 3
P Comparable und Generics Java Basics - Anfänger-Themen 6
I Generics (Subtypen) Java Basics - Anfänger-Themen 17
N Typeinschränkung bei Generics Java Basics - Anfänger-Themen 13
C Generics und Cast Java Basics - Anfänger-Themen 5
H Generics werden in -source 1.2 nicht unterstützt Java Basics - Anfänger-Themen 16
M Datentypen Generics: Exacten Typ ermitteln Java Basics - Anfänger-Themen 6
N Generics und Interfaces Java Basics - Anfänger-Themen 5
S Generics und "generische Feldzuweisungen" Java Basics - Anfänger-Themen 5
lumo Java Generics Java Basics - Anfänger-Themen 19
M verlinkte Liste mit generics Java Basics - Anfänger-Themen 7
capgeti Datentypen Static methoden aus Superklasse mit Generics definieren? Java Basics - Anfänger-Themen 9
S Generics und Typerkennung Java Basics - Anfänger-Themen 7
A Cast ohne Warnung bei Generics Java Basics - Anfänger-Themen 2
B Java Listen und Generics Java Basics - Anfänger-Themen 35
O Abstract Method & Generics Java Basics - Anfänger-Themen 10
K Aufgabe Generics Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben