Compiler-Fehler Comparable / compareTo implementierung

nuri

Mitglied
Hallo leute,

ich stehe vor einem Problem und komme einfach nicht mehr weiter.

folgende Situation ist gegeben:

Klasse CMaterial:

Java:
import java.io.*;
import java.util.*;
/**
 *Class CMateriatl. Jedes Material besteht aus einem Namen zum Beispiel Holz oder Gals. Jedes 
 *dieser Materialien hat eine festgelegte Dichte und einen festgelegten Preis pro Kilogramm.
 * 
 * @author () 
 * @version 29.05.2014
 */
public class CMaterial
{
    // instance variables - replace the example below with your own
    public  String Name;
    private double Dichte;
    public double Pprokg;
    private static String Datei;
    private boolean Check;

    /**
     * Konstruktor des Objekts CMaterial
     */
    public CMaterial(String Name, double Dichte, double Pprokg)
    {
        this.Name = Name;
        this.Dichte = Dichte;
        this.Pprokg = Pprokg;
    }
    
    /**
     * Konstruktor des Objekts CMaterial am Beispiel von Holz
     */
    public CMaterial()
    {
        this.Name="Holz";
        this.Dichte=0.0006; //(kg/cm)
        this.Pprokg=0.3; //€
    }
    /**
     * Diese Methode liest eine *.txt - Datei ein. Diese hat alle Materialien hinterlegt.
     * 
     * @ return: materialien
     */
    public static CMaterial[] MaterialEinlesen ()
    {  
        int zaehler = 0;
        CMaterial[] materialien = null;
        Scanner dateiwerte=null;
        Scanner hilfe=null;
        
   
        try 
        {
            File Datei = new File("Materialliste.txt");
       
            dateiwerte = new Scanner(Datei);
            hilfe = new Scanner(Datei);
        
            while(hilfe.hasNext())
            {
                zaehler++;
                hilfe.next();
            }
                     
            materialien = new CMaterial[zaehler/3];
            for(int i = 0; i < zaehler/3; i++)
            {
                materialien[i] = new CMaterial(dateiwerte.next(),Double.parseDouble(dateiwerte.next()),Double.parseDouble(dateiwerte.next()));
            }
        } catch (IOException e) {
            System.err.println("Fehler! Datei konnte nicht eingelesen werden. :" + e);
        } finally {
            try {
                    System.out.println("Closing Scanner!");
                    dateiwerte.close();
                    hilfe.close();
                    System.out.println("Scanner Closed!");
            } catch (Exception e) {
                System.err.println("Fehler! Datei konnte nicht geschlossen werden. :" + e);
            }
        }
    
        return materialien;
    }
     
    /**
     * Eine Methode zum überprüfen, ob Dateiname richtig übergeben wurden ist.
     * 
     * @return: boolean check5
     */
    public boolean getCheck()
     {
       if (Datei.equals("Materialliste.txt"))
            {
                boolean Check = true;
                
            }
            else 
            {
                System.out.println("Der Dateinamen ist falsch!");
            }
            return Check ;
        }
    
     /**
    * Methode zur Rückgabe der Dichte des Materials
    * 
    * @param  keine Parameter
    * @return Dichte
    */
   
    public double getDichte()
    {
        return Dichte;
    }
    
     /**
    * Methode zur Rückgabe des Preises pro Kilogramm
    * 
    * @param  keine Parameter
    * @return Pprokg 
    */
    public double getPprokg()
    {
        return Pprokg;
    }
    
     /**
    * Methode zur Rückgabe des Namens des Materials
    * 
    * @param  keine Parameter
    * @return Name
    */
    public String getName()
    {
        return Name;
    }
    
     /**
    * Methode zum Setzen der Dichte
    * 
    * @param  neue Dichte
    * @return keine Rückgabe
    */
   
    public void setDichte(double neuDichte)
    {
       Dichte=neuDichte; 
    }
    
     /**
    * Methode zum Setzen des Preises pro Kilogramm
    * 
    * @param  neuer Pprokg (Preis pro Kilogramm
    * @return keine Rückgabe
    */
   
    public void setPprokg(double neuPprokg)
    {
        Pprokg=neuPprokg;
    }
    
     /**
    * Methode zum Setzen des Namens
    * 
    * @param  neuer Name
    * @return keine Rückgabe
    */
   
    public void setName(String neuName)
    {
        Name=neuName;
    }
}

und die abstrakte klasse CMaterialsort:

Java:
/**
 * Write a description of class CMaterialSort here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public abstract class CMaterialsort implements Comparable<CMaterial>

{

    private String Name;
    private double Pprokg;
    private double Dichte;

    public void Material(String Name, double Pprokg, double Dichte) 
    {
        this.Dichte = Dichte;
        this.Name = Name;
        this.Pprokg = Pprokg;
       
    }
   
    @Override
    public String compareTo(CMaterial comparestu) {
        String compareage=((CMaterial)comparestu).getName();
        /* For Ascending order*/
        return this.Name-compareage;

        /* For Descending order do like this */
        //return compareage-this.studentage;
    }

    @Override
    public String toString() {
        return "[ Dichte=" + Dichte + ", Name=" + Name + ", Dichte pro Kg=" + Pprokg + "]";
    }

}

der Kompiler gibt folgenden Fehler aus:

Bildschirmfoto%20vom%202014-06-02%2018%3A53%3A10.png


Quelltext wurde in BlueJ geschrieben.

Woran liegt es?


Vielen dank im voraus für eure mühen.

MfG
 

BK117

Aktives Mitglied
Der Fehler liegt in der Klasse "CMaterialsort" in Zeile 24.
Da steht ja keine Zeilenangabe bei dem Fehler bei.
Und es geht darum, dass ja (logischerweise) String und Int nicht kompatibel sind ;)

Die Fehlermeldung war ja:
"java.lang.Comparable return type java.lang.String is not compatible with int."

Das erstmal so als Tipp ;)
Guck dir nochmal genau an, was zurück gegeben wird :D
Wenn du immer noch nicht weiter weißt, dann sag nochmal Bescheid ;)

Gruß BK
 
Zuletzt bearbeitet:

JavaMeister

Gesperrter Benutzer
Was kommt raus, wenn ich

"Hallo" MINUS "Haus" mache??

Selbst wenn das gehen würde, Sag die Fehlermeldung ja schon korrekt, was schief läuft:

Du sagst "@Override" bei der Methode "public String compareTo(CMaterial comparestu) {"

Damit die Methode korrekt overriden kann, muss diese aber int zurück geben.

compareTo und String Rückgabe macht auch iwie wenig sinn.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Probleme mit Comparable, compareTo() Java Basics - Anfänger-Themen 2
J HashSet mit Comparable sortieren Java Basics - Anfänger-Themen 13
J Interface Comparable<T> Java Basics - Anfänger-Themen 10
L Interface & Comparable Java Basics - Anfänger-Themen 15
I Generics und Comparable Java Basics - Anfänger-Themen 14
O Comparable Generic Java Basics - Anfänger-Themen 24
R Quicksort mit Interface Comparable Java Basics - Anfänger-Themen 6
Kornblume Comparable Interface für Objektvergleiche nutzen Java Basics - Anfänger-Themen 15
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
N Comparable bzw Comparator Java Basics - Anfänger-Themen 5
M Generische Liste aus Comparable-Objekten Java Basics - Anfänger-Themen 6
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
K Comparable - Objekte aus Array vergleichen und größtes auswählen Java Basics - Anfänger-Themen 1
Shizmo Frage zu Comparable Java Basics - Anfänger-Themen 4
L LinkedList Comparable < > MEHRFACH implementieren? Java Basics - Anfänger-Themen 3
N Datentypen LocalDate Generic Comparable Java Basics - Anfänger-Themen 2
S Generics und Comparable Interface Java Basics - Anfänger-Themen 5
F Comparable mit String Java Basics - Anfänger-Themen 5
M Comparable und Comparator nicht ganz klar Java Basics - Anfänger-Themen 1
F Objekte sortieren mit Comparable Java Basics - Anfänger-Themen 9
R Mehrere Interfaces(Comparable, ...) Java Basics - Anfänger-Themen 2
B Comparable & Comparator Java Basics - Anfänger-Themen 9
C Comparable Interface Java Basics - Anfänger-Themen 8
T Interface Interface Comparable Problem... Java Basics - Anfänger-Themen 2
H Interface Comparable Verständnisfrage Java Basics - Anfänger-Themen 6
B Object "Method" in TreeSet, Fehler beim Vergleichen/Comparable Java Basics - Anfänger-Themen 9
pg1337 Interface Comparable-Interface bei HashMap Java Basics - Anfänger-Themen 21
A Comparable interface Java Basics - Anfänger-Themen 26
I Interface Comparable für Server-Item-Interface Java Basics - Anfänger-Themen 12
P Comparable und Generics Java Basics - Anfänger-Themen 6
S comparable und equals Java Basics - Anfänger-Themen 7
S Unterschied Comparable und Comparator Java Basics - Anfänger-Themen 2
M Frage zum Interface Comparable Java Basics - Anfänger-Themen 3
S Comparable Java Basics - Anfänger-Themen 4
H Comparable und Comparator Java Basics - Anfänger-Themen 22
S instanceof Comparable...geht nicht? Java Basics - Anfänger-Themen 20
M comparable funktion & reverse funktion Java Basics - Anfänger-Themen 8
H Mehrere Comparable Java Basics - Anfänger-Themen 4
S Comparator / Comparable ? Java Basics - Anfänger-Themen 3
D Comparable - Bucketsort / Radixsort? Java Basics - Anfänger-Themen 2
B Mehrere Werte mit Comparable sortieren Java Basics - Anfänger-Themen 14
S String umwandeln in Comparable Java Basics - Anfänger-Themen 6
R Comparable Interface Funktionalität selbst programmieren? Java Basics - Anfänger-Themen 3
A Interface Comparable Java Basics - Anfänger-Themen 2
J Comparable Java Basics - Anfänger-Themen 9
D Frage zu Collection.sort bzw. Comparator u. Comparable Java Basics - Anfänger-Themen 2
B Wann Comparator und wann Comparable Java Basics - Anfänger-Themen 6
frau-u Wie vergleicht Comparable Java Basics - Anfänger-Themen 2
M Comparable - Bedingung erzwingen Java Basics - Anfänger-Themen 3
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
P compareTo() Java Basics - Anfänger-Themen 3
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
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
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
ruutaiokwu JRE-/JDK-unabhängige PBKDF2WithHmacSHA512-Implementierung Java Basics - Anfänger-Themen 16
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
K Fehler bei der Implementierung Java Basics - Anfänger-Themen 6
J Implementierung gcd();square() Java Basics - Anfänger-Themen 98
J Implementierung von Observer und Singleton-Pattern Java Basics - Anfänger-Themen 9
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
G Projekt architektur (implementierung) Java Basics - Anfänger-Themen 3
M Implementierung einer getNextId Methode Java Basics - Anfänger-Themen 5
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
J Implementierung eines Zustandsdiagramms Java Basics - Anfänger-Themen 19
I GenericQueue / Implementierung als Ringspeicher Java Basics - Anfänger-Themen 4
MiMa Log4j2 implementierung Java Basics - Anfänger-Themen 4
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben