Βίντεο: Πώς μπορώ να δημιουργήσω αρχεία jar της Java; 2024
A γενική κλάση στην Java είναι μια κλάση που μπορεί να λειτουργήσει σε συγκεκριμένο τύπο που καθορίζεται από τον προγραμματιστή στο compile χρόνος. Για να επιτευχθεί αυτό, ο ορισμός κλάσης χρησιμοποιεί παράμετρο τύπου s που δρουν ως μεταβλητές που αντιπροσωπεύουν τύπους (όπως int ή String).
Για να δημιουργήσετε μια γενική κλάση, ορίζετε την παράμετρο τύπου μετά το όνομα της κλάσης σε γωνιακές αγκύλες. Η παράμετρος τύπου καθορίζει ένα όνομα που μπορείτε να χρησιμοποιήσετε σε ολόκληρη την τάξη οπουδήποτε διαφορετικά θα χρησιμοποιούσατε έναν τύπο. Για παράδειγμα, εδώ είναι μια απλοποιημένη έκδοση της δήλωσης κλάσης για την κλάση ArrayList:
δημόσια τάξη ArrayList
Έχω αφήσει έξω τις εκτείνεται και εφαρμόζει τις ρήτρες για να εστιάσει στην τυπική παράμετρο τύπου:. Η παράμετρος Ε καθορίζει τον τύπο των στοιχείων που είναι αποθηκευμένα στη λίστα.
Για να δημιουργήσετε μια παρουσία μιας γενικής κλάσης, πρέπει να δώσετε τον πραγματικό τύπο που θα χρησιμοποιηθεί στη θέση της παραμέτρου τύπου, όπως παρακάτω:
ArrayList myArrayList;
Εδώ η παράμετρος Ε είναι String, οπότε ο τύπος στοιχείου για αυτήν την εμφάνιση της κλάσης ArrayList είναι String.
Τώρα δείτε τη δήλωση για τη μέθοδο προσθήκης για την κλάση ArrayList:
δημόσιο boolean add (E o) {// σώμα παραλείπεται (ευχαριστώ)}
κανονικά αναμένετε να δείτε έναν τύπο παραμέτρου, βλέπετε το γράμμα Ε. Έτσι, αυτή η δήλωση μεθόδου προσδιορίζει ότι ο τύπος για την παράμετρο o είναι ο τύπος που έχει καθοριστεί για την τυπική παράμετρο τύπου E. Εάν το E είναι String, η μέθοδος προσθήκης δέχεται μόνο String αντικείμενα. Αν καλέσετε τη μέθοδο προσθήκης που περνάει οτιδήποτε εκτός από μια παράμετρο String, ο μεταγλωττιστής θα δημιουργήσει ένα μήνυμα σφάλματος.
Μπορείτε επίσης να χρησιμοποιήσετε μια παράμετρο τύπου ως τύπος επιστροφής. Εδώ είναι η δήλωση της μεθόδου get class ArrayList:
public E get (int index) {// το σώμα της μεθόδου παραλείπεται (είστε ευπρόσδεκτοι)}
Εδώ ορίζεται το E ως τύπος επιστροφής. Αυτό σημαίνει ότι αν E είναι String, αυτή η μέθοδος επιστρέφει String αντικείμενα.
Το βασικό όφελος των γενικών φαρμάκων είναι ότι ο έλεγχος τύπου συμβαίνει κατά τον χρόνο σύνταξης. Έτσι, αφού καθορίσετε την τιμή μιας τυπικής παραμέτρου τύπου, ο μεταγλωττιστής γνωρίζει πώς να κάνει τον έλεγχο τύπου που υπονοείται από την παράμετρο. Έτσι ξέρει να μην σας αφήσει να προσθέσετε αντικείμενα String σε μια συλλογή Employee.