# Generische Typen und Comparable



## prolahmierer (24. Sep 2007)

Hi!

Ich hab hier eine Aufgabenstellung, die kapiere ich nicht so ganz:

Wenn ich schreibe:


```
Class MeineKlasse <A extends Comparable>{...}
```

Dann muss A eine Unterklasse von Comparable sein, also String, Integer und so weiter, verstehe ich das richtig?

Jetzt habe ich hier aber folgendes Konstrukt:


```
Class MeineKlasse <A extends Comparable<A>>{...}
```

Was hat das zu bedeuten? Ich wed nicht schlau draus 

 :autsch:


----------



## SlaterB (24. Sep 2007)

man kann Objekte mit beliebigen anderen Objekten vergleichen oder nur mit Objekten der eigenen Klasse,

schaue dir String.compareTo() an, statt Object akzeptiert die Operation nur einen anderen String,
weil String nicht einfach Comparable implementiert, sondern Comparable<String> 

das ist so gedacht bei Javas Comparable


----------



## Guest (24. Sep 2007)

Also kann man damit nur mit Objekten der eigenen Klasse vergleichen ja? 

Ok, vielen Dank


----------



## byte (24. Sep 2007)

Genau, und so sollte es auch sein.


----------



## SlaterB (24. Sep 2007)

auch mit Subklassen, aber nicht mit beliebigen Objekten
(String mit Integer)


----------



## Guest (24. Sep 2007)

Soweit hab ich das ja kapiert, aaaber:


Gegeben sind drei Klassen:


Klasse D:

```
interface D<A extends Comparable<A>>{}
```

Klasse E:

```
class E{
}
```


Klasse F:

```
class F implements D<E>{}
```

Wo ist der Fehler? Klar ist mir, dass F E nicht richtig implementieren kann, da E nicht Comparable ist oder? Wie passt man das ganze an, dass es stimmt?

Danke & Gruß,

der Prolahmierer


----------



## SlaterB (24. Sep 2007)

na als aller erstes brauchst du doch wohl 

class E implements Comparable<E>{
}

vorher muss man gar nicht erst anfangen oder?

wohin solche Fragen führen können siehe hier:
http://www.java-forum.org/de/viewtopic.php?t=55950
also überlege genau, ob du dich auf Comparable einlassen willst


----------

