java Class<? extends T> als Parameter

Gast #3214337
Ich habe code in Java :
1
public <T> T transformTo(Class<? extends T> clazz, Object entity,
2
      TableData[] param) throws TransformerException {
3
.......
kann mir jemend erklären evt. an einem kleinen Beispiel, was bedeutet: 
Class<? extends T> clazz und <T> T??? Und warum muss man Class und nicht 
Exemplar von der Klasse übergeben?

Danke
Persönliche Seite #3214366
Karl Heinz Buchegger schrieb:
> Sieht für mich nach einem Template aus.

Ist aber ein Generic.

ivan schrieb:
> warum muss man Class und nicht Exemplar von der Klasse übergeben

Weil du hier offensichtlich etwas umwandeln kannst. Um nicht casten zu 
müssen oder ggf. Metadaten aus der Zielklasse abzufragen gibt es halt 
das Generic.
Das extends schränkt insofern ein, als das du nur Klassen wählen kannst 
die von Typ T oder einem abgeleitetem Typ sind. Ohne die Konkrete Klasse 
kann man da aber nicht zu sagen.
Bei den Collections ist das Ähnlich gelöst siehe 
http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html hast 
du eine Collection vom Typ T kannst du über addAll alle Collections die 
diesen Typ oder einen abgeleiteten Typ haben hinzufügen siehe 
http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html#addAll(java.util.Collection)

Konkretes Beispiel:
1
Collection<Number> one = new ArrayList<Number>();
2
Collection<Double> other = new ArrayList<Double>();
3
other.add(1.234);
4
one.addAll(other);

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.