Έχουν δημοσιευτεί
Κυριακή, 12 Νοεμβρίου 2006 3:14 μμ
από το μέλος
PALLADIN
Πρόσφατα έκανα code review σε ένα Java 1.5 project και βρέθηκα αντιμέτωπος "για άλλη μια φορά" με τα προβλήματα που δημιουργεί το type erasure των Java Generics.
Θα παρουσιάσω το πρόβλημα με ένα απλό κομμάτι κώδικα
ArrayList<Integer> listOfInteger = new ArrayList<Integer>();
ArrayList list = listOfInteger;
list.add(new Object());
int test = listOfInteger.get(0);
Οπότε ένα ωραιότατο ClassCastException καραδοκεί να μας αιφνιδιάσει. Τουλάχιστον τα unit tests στο JUnit βοήθησαν την κατάσταση.
Ένα πολύ καλό βιβλίο για το θέμα είναι το κάτωθι
http://www.amazon.com/Java-Generics-Collections-Maurice-Naftalin/dp/0596527756
(Πολύ δεν μιλήσαμε για Java…. Άλλωστε στο dotnetzone βρισκόμαστε...)
Όπως και να έχει, αισθάνομαι μια μεγαλύτερη ασφάλεια από InvalidCastException στον C# 2.0 κώδικά μου :)