Hi,
also ich hab keine richtige Frage sondern mir ist etwas aufgefallen was ich irgendwie seltsam finde... jetzt wollt ich mal fragen ob ihr das sinnvoll findet?
Also es gibt diese generische Methode:
Wenn ich diese Methode nun dummerweise so aufrufe:
interpretiert der Compiler "T" automatisch als "Number" und nun werden alle Werte in die integerListe gespeichert. Wenns nun blöd läuft kommts zu nem run-time-error wenn ich die Werte aus der integerList aufrufen will.
Ganz ehrlich.... ist diese automatische Annahme wirklich sinnvoll? Was meint ihr dazu?
Mir ist auch klar dass folgendes sinnvoller wäre:
aber nehmen wir eben mal an die Methode ist halt eben NICHT so geschrieben.
also ich hab keine richtige Frage sondern mir ist etwas aufgefallen was ich irgendwie seltsam finde... jetzt wollt ich mal fragen ob ihr das sinnvoll findet?
Also es gibt diese generische Methode:
Code:
public <T> void fromArrayToCollection(T[] array, Collection<T> collection){
for (T type:array){
collection.add(type);
}
}
Wenn ich diese Methode nun dummerweise so aufrufe:
Code:
Number[] numberArray = {1,1.5,2,2.5,3};
List<Integer> integerList = new ArrayList<Integer>();
fromArrayToCollection(numberArray, integerList);
interpretiert der Compiler "T" automatisch als "Number" und nun werden alle Werte in die integerListe gespeichert. Wenns nun blöd läuft kommts zu nem run-time-error wenn ich die Werte aus der integerList aufrufen will.
Ganz ehrlich.... ist diese automatische Annahme wirklich sinnvoll? Was meint ihr dazu?
Mir ist auch klar dass folgendes sinnvoller wäre:
Code:
public <T> void fromArrayToCollection(T[] array, Collection<? super T> collection){
for (T type:array){
collection.add(type);
}
}