compareTo()

Moin,

ich habe mal wieder ein Problem und zwar möchte ich eine compareTo() Methode anlegen, die insgesamt 3 verschiedene Klassen vergleichen kann. Der Code sieht bei mir bisher so aus:
Java:
public static int compareTo(Object o) {

        int value1=
        int value2=

        if (value1> value2) {
            System.out.println(o+ " groesser");
            return 1;
        } else if (value1< value2) {
            System.out.println(o+ " kleiner");
            return -1;
        } else if (value1== value2) {
            System.out.println(o+ " gleich gross");
            return 0;
        }
        return 1;
    }

Die Methode befindet sich in einer abstrakten Klasse, von der 3 Klassen erben. Diese 3 Klassen repräsentieren quasi alle einen Zahlenwert (Im Konstruktor wird eine Eingabe von Zahlen verrechnet und in einen private int bzw private double gespeichert).
In Value 1 und 2 sollten dann dementsprechend die Werte abgespeichert werden, die durch meine 3 anderen Klassen repräsentiert werden.
Würden es nicht 3 Klassen sein, könnte man die Werte ja leicht durch einen Getter in der jeweiligen Klasse holen und speichern. Ich beiße mir aktuell aber die Zähne daran aus, das ganze für alle Klassen zugänglich zu machen.
 

mrBrown

Super-Moderator
Mitarbeiter
Du kannst einen abstrakten Getter schreiben, mit dem die 3 Unterklassen jeweils den für den Vergleich nötigen Wert zurückliefen. (Wenn der Wert nicht schon in der Oberklasse ist)

Zum Vergleichen von ints bietet sich Integer.compare an ;)
 
Du kannst einen abstrakten Getter schreiben, mit dem die 3 Unterklassen jeweils den für den Vergleich nötigen Wert zurückliefen. (Wenn der Wert nicht schon in der Oberklasse ist)

Zum Vergleichen von ints bietet sich Integer.compare an ;)

Auf so etwas bin ich natürlich nicht gekommen :D Funktioniert jetzt so wie ich es wollte, danke dir^^

An der Stelle ist mir noch mal was aufgefallen und zwar heißt diese Abstrakte Klasse von der ich sprach Number und scheint ja daher ja nichts unbekanntes in Java zu sein :D
Innerhalb der 3 Unterklassen soll ich nun verschiedene Rechenoperationen durchführen und kriege dazu als Parameter eine Instanz von Number und muss diesen Parameter dann auf die Zahl addieren die meine Unterklasse repräsentiert. Das funktioniert ja nicht so einfach, weil Number immer noch ein Objekt ist. Ich habe soweit gegooglet um verstanden zu haben, dass man Objekte unboxen kann um sie in einen primitiven Datentypen zu bekommen.
Die Frage ist nun wie lasse ich dieses unboxen in jenem Fall geschehen?
 

mrBrown

Super-Moderator
Mitarbeiter
Die Klasse Number, die nicht unbekannt ist, ist java.lang.Number, das ist eine andere Klasse, als deine abstrakte Klasse ;)

In deinem Fall wird Autoboxing nicht Funktionieren, das klappt nur mit den Wrappern aus java.lang.
Kannst du aber ähnlich lösen wie in java.lang.Number, deine Klassen bekommen Methoden um den Zahlenwert als int/double/short etc zu bekommen, und rechnen dann damit weiter.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Cassy3 Generics - CompareTo Java Basics - Anfänger-Themen 21
J compareTo()- und equals-Methode Java Basics - Anfänger-Themen 3
X compareTo Methode wird ignoriert Java Basics - Anfänger-Themen 7
O compareTo nach mehreren Kriterien Java Basics - Anfänger-Themen 13
J Hashmap langsamer als compareTo? Java Basics - Anfänger-Themen 23
B Methoden compare() und compareTo() Java Basics - Anfänger-Themen 1
C compareTo verwenden Java Basics - Anfänger-Themen 2
T Datentypen compareTo() u. equals() bei Strings Java Basics - Anfänger-Themen 3
K hashCode, compareTo vs. equals Java Basics - Anfänger-Themen 3
J Sortier alternativen mit der compareTo Methode? Java Basics - Anfänger-Themen 6
J TreeSet mit compareTo sortieren Java Basics - Anfänger-Themen 2
K compareTo(String arg) überschreiben Java Basics - Anfänger-Themen 4
N Compiler-Fehler Comparable / compareTo implementierung Java Basics - Anfänger-Themen 2
M CompareTo soll Datum sortieren Java Basics - Anfänger-Themen 2
S compareTo() und equals() Java Basics - Anfänger-Themen 6
A Objekte aus 2 Klassen mit compareTo() vergleichen Java Basics - Anfänger-Themen 7
K CompareTo zwei mal benutzen klappt nicht. Java Basics - Anfänger-Themen 2
1 HILFE! Strings mit CompareTo vergleichen Java Basics - Anfänger-Themen 3
R compareTo & equals Java Basics - Anfänger-Themen 10
T Methoden Wie compareTo() Methode implementieren? Java Basics - Anfänger-Themen 9
T Strings mit compareto vergleichen und array sortieren Java Basics - Anfänger-Themen 14
P Generischer Binärbaum (compareTo Frage) Java Basics - Anfänger-Themen 4
J Probleme mit Comparable, compareTo() Java Basics - Anfänger-Themen 2
R compareTo Liste sortieren Java Basics - Anfänger-Themen 5
L compareTo bei Strings? Java Basics - Anfänger-Themen 4
D OOP mit compareTo Array sortieren (aus zwei Klassen) Java Basics - Anfänger-Themen 3
T compareTo warum geht es nicht? Java Basics - Anfänger-Themen 2
W compareTo für 3 Strings Java Basics - Anfänger-Themen 11
M compareTo-Sortierungsproblem Java Basics - Anfänger-Themen 16
F compareTo - Sortierung nach 2 Argumenten Java Basics - Anfänger-Themen 10
G in compareTo umschreiben Java Basics - Anfänger-Themen 4
A Die "compareTo( )" methode Java Basics - Anfänger-Themen 16
J compareTo Java Basics - Anfänger-Themen 4
G compareTo Java Basics - Anfänger-Themen 12
T Wie geht das mit compareTo Java Basics - Anfänger-Themen 2
M o.compareTo(o) Java Basics - Anfänger-Themen 13
K compareTo in Verbinug mit Arrays.sort() Java Basics - Anfänger-Themen 4
Bierhumpen compareTo. Wie setze ich es ein Java Basics - Anfänger-Themen 11
R compareTo Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben