Έναρξη εργασιών με το Eclipse και το J2SE 5.0

Από την έκδοση 3.1, το Eclipse συμπεριλαμβάνει πλήρη υποστήριξη για τις νέες λειτουργίες του J2SE 5.0 (κωδικοποιημένο όνομα "Tiger"). Μία από τις πιο σημαντικές συνέπειες αυτής της υποστήριξης είναι ότι μπορεί να μην το προσέξετε καθόλου -- όλα όσα περιμένετε να λειτουργούν για το J2SE 1.4, όπως τροποποίηση, μεταγλώττιση, εντοπισμός και διόρθωση σφαλμάτων, λειτουργίες ταχείας επιδιόρθωσης, βελτιστοποιήσεις δομής, ενέργειες πρωτογενούς κώδικα, αναζήτηση, κλπ. θα λειτουργούν άψογα με τα νέα είδη και τη σύνταξη του J2SE 5.0. Στο έγγραφο αυτό, θα παρουσιάσουμε ορισμένες από τις πιο ενδιαφέρουσες δυνατότητες που θα βρουν οι χρήστες του Eclipse, όταν εργάζονται με το J2SE 5.0.

Αναγκαίες προϋποθέσεις:

Προκειμένου να αναπτύξετε κώδικα συμβατό με J2SE 5.0, θα πρέπει να διαθέτετε το J2SE 5.0 Java Runtime Environment (JRE). Όταν ξεκινήσετε το Eclipse για πρώτη φορά, χρησιμοποιώντας ένα J2SE 5.0 JRE, αυτό θα χρησιμοποιηθεί ως προεπιλογή. Σε διαφορετική περίπτωση, θα πρέπει να χρησιμοποιήσετε τη σελίδα προτιμήσεων Ανοίγει τη σελίδα προτιμήσεων "Εγκατεστημένα JRE" Java > Εγκατεστημένα JRE για να το δηλώσετε στο καταχωρήσετε με το Eclipse.

Το έγγραφο αυτό παρουσιάζει εν συντομία κάποιες από τις νέες λειτουργίες γλώσσας του J2SE 5.0, αλλά δεν αποτελεί το κατάλληλο πρόγραμμα εκμάθησης για τις λειτουργίες αυτές. Ανατρέξτε εδώ για περισσότερες πληροφορίες.

Επίπεδο συμβατότητας μεταγλωττιστή

Για να χρησιμοποιήσετε τις νέες λειτουργίες του J2SE 5.0, πρέπει να εργάζεστε σε ένα έργο το οποίο θα έχει ενεργοποιημένο επίπεδο συμβατότητας 5.0 και JRE 5.0. Τα νέα έργα σημειώνονται αυτόματα ως συμβατά με 5.0, όταν επιλέγετε ένα JRE 5.0 στην πρώτη σελίδα του οδηγού Ανοίγει τον οδηγό δημιουργίας έργου Java δημιουργίας έργου Java:

Οδηγός δημιουργίας έργου

Για να μετατρέψετε ένα υπάρχον έργο J2SE 1.4 σε J2SE 5.0, μπορείτε απλώς:
  1. Να βεβαιωθείτε ότι έχετε εγκατεστημένο ένα J2SE 5.0 JRE.
  2. Να ξεκινήσετε χρησιμοποιώντας τις λειτουργίες 5.0 στον κώδικά σας.
  3. Όταν επισημανθεί ένα σφάλμα μεταγλώττισης, τότε μπορείτε να χρησιμοποιήσετε την "Ταχεία επιδιόρθωση" για να ενημερώσετε το επίπεδο συμβατότητας του έργου:

    Ταχεία επιδιόρθωση για την ενεργοποίηση του J2SE 5.0

Για πιο λεπτομερή έλεγχο, το επίπεδο συμβατότητας μεταγλωττιστή μπορεί να οριστεί καθολικά για ένα χώρο εργασίας (με τη σελίδα προτιμήσεων Ανοίγει τη σελίδα προτιμήσεων "Μεταγλωττιστής Java" Java > Μεταγλωττιστής) ή μεμονωμένα για κάθε έργο (από το μενού περιβάλλοντος του έργου επιλέξτε Ιδιότητες > Μεταγλωττιστής Java). Στο χώρο εργασίας μπορούν να συνυπάρχουν έργα με διαφορετικά επίπεδα συμβατότητας και να εξαρτώνται το ένα από το άλλο. Μπορείτε επίσης να ρυθμίσετε τα είδη των προειδοποιήσεων και σφαλμάτων μεταγλώττισης που δημιουργούνται για το κάθε έργο, χρησιμοποιώντας την επιλογή Ιδιότητες > Μεταγλωττιστής Java > Σφάλματα/Προειδοποιήσεις > Επιλογές J2SE 5.0

Γενικά είδη

Τα γενικά είδη επιτρέπουν σε αντικείμενα της ίδιας κλάσης να λειτουργούν με ασφάλεια σε αντικείμενα διαφορετικών ειδών. Για παράδειγμα, διασφαλίζεται από το χρόνο μεταγλώττισης, ότι μια List<String> περιέχει πάντα Strings, και μια List<Integer> περιέχει πάντα Integers.

Όπου το Eclipse χειρίζεται μη γενικά είδη, μπορεί να χειριστεί και ένα γενικό είδος: Επιπλέον, έχει προστεθεί μια νέα βελτιστοποίηση δομής: Η Συμπερασματική επαγωγή ορισμάτων γενικού είδους μπορεί να εξάγει συμπεράσματα για τις παραμέτρους είδους για κάθε παραπομπή είδους σε μια κλάση, ένα πακέτο ή ένα ολόκληρο έργο:

Κλήση της συμπερασματικής επαγωγής ορισμάτων γενικού είδους

Η κλήση της βελτιστοποίησης δομής έχει ως αποτέλεσμα:

Συμπερασματική επαγωγή ορισμάτων γενικού είδους που έχει κληθεί

Το Eclipse προσφέρει νέες επιλογές κατά την αναζήτηση παραπομπών σε γενικά είδη. Δείτε το παρακάτω παράδειγμα:

Παράδειγμα με τέσσερις διαφορετικές παραμετροποιημένες δημιουργίες χρήσης της λίστας

Με επιλογή της παραπομπής στη List<Integer> και χρήση της Αναζήτηση > Παραπομπές > Έργο θα επισημανθούν τα είδη της λίστας και στις τέσσερις γραμμές:

Αναζήτηση χωρίς φίλτρα

Χρησιμοποιώντας το μενού της προβολής "Αναζήτηση", μπορείτε να φιλτράρετε τα αποτελέσματα:

Φιλτράρισμα μη συμβατών αφήνει μόνο τις παραπομπές σε είδη που είναι συμβατά ως προς την αντιστοίχιση με το επιλεγμένο είδος:

Φιλτράρισμα μη συμβατών

Φιλτράρισμα ανακριβών αφήνει μόνο τις παραπομπές σε είδη που έχουν ακριβώς την ίδια υπογραφή:

Φιλτράρισμα ανακριβών

Σημειώσεις

Οι σημειώσεις συνδέουν μετα-δεδομένα για τον τρόπο χρήσης και τεκμηρίωσης των ειδών και μεθόδων Java με τον πρωτογενή κώδικα Java. Μπορούν να επηρεάσουν τη μεταγλώττιση ή μπορούν να υποβληθούν ερωτήματα για αυτές κατά το χρόνο εκτέλεσης. Για παράδειγμα, η σημείωση @Override θα ενεργοποιήσει αυτόματα μια προειδοποίηση μεταγλώττισης, αν η μέθοδος που φέρει τη σημείωση δεν αντικαθιστά μια μέθοδο σε μια υπερ-κλάση:

Σημείωση αντικατάστασης

Οτιδήποτε μπορείτε να κάνετε με ένα είδος Java, μπορείτε να το κάνετε με μια σημείωση:

Μια πολύ χρήσιμη σημείωση με πλήρη υποστήριξη στο Eclipse είναι η @SuppressWarnings. Για παράδειγμα, θεωρήστε μια ιδιωτική μέθοδο η οποία δεν χρησιμοποιείται αυτή τη στιγμή, αλλά δε θα θέλατε να τη διαγράψετε:

Προειδοποίηση: μη χρησιμοποιούμενη ιδιωτική μέθοδος

Με την κλήση της ταχείας επιδιόρθωσης όταν εμφανιστεί η προειδοποίηση, προτείνεται η προσθήκη μιας σημείωσης @SuppressWarnings:

Προτάθηκε η σημείωση SuppressWarnings

Με την επιλογή της ταχείας επιδιόρθωσης, η σημείωση θα προστεθεί. Ο μεταγλωττιστής Eclipse τηρεί τη σημείωση, αφαιρώντας την προειδοποίηση στο foo:

Εισήχθη η σημείωση SuppressWarnings

Απαριθμήσεις

Οι απαριθμήσεις είναι είδη για τα οποία πραγματοποιείται δημιουργία χρήσης από ένα γνωστό, πεπερασμένο σύνολο αντικειμένων:

Είδος απαρίθμησης

Και εδώ, οτιδήποτε μπορείτε να κάνετε σε μια κλάση Java, μπορείτε να το κάνετε σε μια απαρίθμηση:

Αυτόματη δημιουργία πλαισίων

Η αυτόματη δημιουργία πλαισίων και η αυτόματη αναίρεση πλαισίων επιτρέπουν την κομψή σύνταξη, όταν στοιχειώδη είδη αντιστοιχίζονται σε παραπομπές αντικειμένων ή ανακτώνται από αυτές:

Επισήμανση αυτόματης δημιουργίας πλαισίων

Ο χειρισμός του πρωτογενούς κώδικα στο Eclipse συμπεριλαμβάνει τον άψογο χειρισμό της αυτόματης δημιουργίας πλαισίων, δίνοντας τα σωστά είδη σε νέες τοπικές μεταβλητές και τη σωστή αυτόματη συμπλήρωση κώδικα. Για την κατανόηση του κώδικα, είναι δυνατή η ένδειξη των περιπτώσεων χρήσης αυτόματης δημιουργίας ή αναίρεσης πλαισίων, ως προειδοποιήσεις μεταγλωττιστή (χρησιμοποιώντας την ενότητα Πιθανά προβλήματα προγραμματισμού της σελίδας προτιμήσεων Ανοίγει τη σελίδα προτιμήσεων "Σφάλματα/Προειδοποιήσεις" Java > Μεταγλωττιστής > Σφάλματα/Προειδοποιήσεις), ή η επισήμανσή τους με τη χρήση χρωματισμού σύνταξης (μέσω της ενότητας Java > Αυτόματη δημιουργία ή αναίρεση πλαισίων σε εκφράσεις στη σελίδα προτιμήσεων Ανοίγει τη σελίδα προτιμήσεων χρωματισμού σύνταξης Java > Λειτουργία επεξεργασίας > Χρωματισμός σύνταξης):

Ενεργοποίηση επισήμανσης για αυτόματη δημιουργία πλαισίων

Βελτιωμένος βρόχος for

Για τη συνήθη περίπτωση λειτουργίας σε κάθε στοιχείο ενός πίνακα ή συλλογή με τη σειρά, το J2SE 5.0 επιτρέπει μια νέα, πληρέστερη σύνταξη. Το Eclipse παρέχει ένα πρότυπο κώδικα "foreach" το οποίο μπορεί να εκτιμήσει αυτόματα τη συλλογή στην οποία θα γίνει επαναληπτική προσέγγιση:

προτεινόμενο πρότυπο foreach

Με την επιλογή του προτύπου προκύπτει:

προτεινόμενο πρότυπο foreach

Το Eclipse παρέχει επίσης μια ταχεία βοήθεια "Μετατροπή σε βελτιωμένο βρόχο for" για την αναβάθμιση των βρόχων for στυλ 1.4, όπου αυτό είναι εφικτό.

Άλλα

Ο χειρισμός όλων των άλλων λειτουργιών του J2SE 5.0 πραγματοποιείται εύκολα από τα εργαλεία τροποποίησης, αναζήτησης και χειρισμού κώδικα του Eclipse: Καλή δημιουργία κώδικα!