Interface Interface Comparable Problem...

Terry12

Aktives Mitglied
hi,
ich möchte 2 Objekte miteinander vergleichen in meiner Klasse

Java:
/**
 * Die Klasse Objectarr1 ist die Oberklasse für arr1.
 * 
 * @author      
 * @version     1.0.0.1
 */
public class ObjectArray implements Comparable
{
    private Object[] arr1;
    private static final int SIZE = 3;
    private int max;
    
    /**
     * Konstruktor für Objekte der Klasse Objectarr1
     */
    public ObjectArray()
    {        
        arr1 = new Object[SIZE];        
    }

        public void insert(Object key)
    {        
        arr1[max++] = key;            
    }
    
    public boolean isFull()
    {
        if (max == SIZE) {
            return true;
        }
        else return false;
    }
     
    public boolean isEmpty()
    {
        if (max == 0){
            return true;
        }
        else return false;
    }
    
    public int compareTo(Object key,int index)
    {
        Object o = getElement(index);
        int cmp = o.compareTo(key);        
            return cmp;
    }
       
        
        public void sort()throws NullPointerException {        
            int cmp;   
            Object tmp;
            if (arr1[0]!=null && arr1[1]!=null){
                cmp = (Comparable)arr1[0].compareTo((Comparable)arr1[1]);
                if (cmp >0) {
                    tmp = arr1[0];
                    arr1[0] = arr1[1];
                    arr1[1] = (String)tmp;
                }
            }
            if (arr1[1]!=null && arr1[2]!=null){
                cmp = arr1[1].compareTo(arr1[2]);
                if (cmp>0) {
                    tmp = arr1[1];
                    arr1[1] = arr1[2];
                    arr1[2] = (String)tmp;
                }
            }
            if (arr1[0]!=null && arr1[1]!=null){
                cmp = arr1[0].compareTo(arr1[1]);
                if (cmp >0) {
                    tmp = arr1[0];
                    arr1[0] = arr1[1];
                    arr1[1] = (String)tmp;
                }
            }
    }
    
    public Object getElement(int index)
    {
        return arr1[index];
    }
    
    public int size()
    {
        return SIZE;
    }
    
    public int actualSize()
    {
        return max;
    }      
    
    public void setFirst(Object key)
    {
        arr1[0] = key;
    }
    
    public void setSecond(Object key)
    {
        arr1[1] = key;
    }
    
    public void setThird(Object key)
    {
        arr1[2] = key;
    }
    
    public Object getFirst()
    {
        return arr1[0];
    }
    
    public Object getSecond()
    {
        return arr1[1];
    }
    
    public Object getThird()
    {
        return arr1[2];
    }
}

warum bringt BlueJ mir Fehlermeldung compareTo Methode wird nicht überschrieben obwohl ich die Methode implementiert habe?
Wie kann ich 2 allgemeine "Objekte" miteinander vergleichen?
wenn ich sage : public class ObjectArray<Object extends Comparable<Object>>
funktioniert es auch nicht dann kommt komischerweise die Fehlermeldung :
Java:
public ObjectArray()
    {        
        arr1 = new Object[SIZE];        
    }
-->generic array creation

was hat das dann wieder zu bedeuten? Ich versteh einfach nicht wie man allgemein 2 Objekte mittels Comparable miteinander vergleichen kann.
 
Du darfst nur ein Object als Parameter in der compareTo-Methode angeben, wenn du die compareTo-Methode des Interfaces implementieren willst.

Gruß Fant
 

Neue Themen


Zurück
Oben