hi,
ich möchte 2 Objekte miteinander vergleichen in meiner Klasse
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 :
-->generic array creation
was hat das dann wieder zu bedeuten? Ich versteh einfach nicht wie man allgemein 2 Objekte mittels Comparable miteinander vergleichen kann.
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];
}
was hat das dann wieder zu bedeuten? Ich versteh einfach nicht wie man allgemein 2 Objekte mittels Comparable miteinander vergleichen kann.