Junior — Middle
Ի՞նչն է խանգարում օգտագործել հիմնական տվյալների տիպերը գեներիկ պարամետրերում:
sobes.tech AI
Պատասխան AI-ից
Java- ում, γενικευμένες (Generics) υλοποιούνται μέσω της διαγραφής τύπων (type erasure), που σημαίνει ότι οι πληροφορίες σχετικά με τους τύπους των γενικών παραμέτρων δεν είναι διαθέσιμες κατά την εκτέλεση.
Εξαιτίας αυτού, δεν μπορεί να χρησιμοποιηθούν πρωταρχικοί τύποι (int, boolean κ.λπ.) ως γενικοί παράμετροι, καθώς δεν είναι αντικείμενα και δεν μπορούν να αναπαρασταθούν ως κλάσεις.
Για παράδειγμα, είναι λανθασμένο να γραφεί:
List<int> numbers; // Σφάλμα
Αντίθετα, πρέπει να χρησιμοποιούνται οι περιτυλιγμένες κλάσεις:
List<Integer> numbers; // Σωστά
Αυτό συμβαίνει επειδή οι γενικές λειτουργούν μόνο με τύπους αντικειμένων, και οι πρωταρχικοί τύποι δεν είναι αντικείμενα.