Σφάλματα/προειδοποιήσεις

Υποδείξτε τις προτιμήσεις σας για τις ρυθμίσεις "Σφάλματα/προειδοποιήσεις" στη σελίδα προτιμήσεων Ανοίγει τη σελίδα προτιμήσεων "Σφάλματα/προειδοποιήσεις" Java > Μεταγλωττιστής > Σφάλματα/προειδοποιήσεις .

Στυλ κώδικα

Επιλογή

Περιγραφή

Προεπιλογή

Πρόσβαση μη στατικού μέλους σε στατικό μέλος

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε επιχειρείται πρόσβαση σε ένα στατικό πεδίο ή μέθοδο με μια λειτουργία λήψης έκφρασης. Μια παραπομπή σε ένα στατικό μέλος πρέπει να προσδιορίζεται με ένα όνομα είδους.

Προειδοποίηση

Έμμεση πρόσβαση σε στατικό μέλος

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε επιχειρείται έμμεση πρόσβαση σε ένα στατικό πεδίο ή μέθοδο. Ένα στατικό πεδίο μιας διεπαφής πρέπει να προσδιορίζεται με το όνομα είδους που δηλώνεται.

Παράβλεψη

Μη προσδιορισμένη πρόσβαση σε πεδίο χρήσης

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια μη προσδιορισμένη πρόσβαση σε πεδίο (π.χ. απουσία ενός "this").

Παράβλεψη

Μη τεκμηριωμένη κενή ενότητα

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια πρόταση κενής ενότητας χωρίς επεξηγηματικό σχόλιο.

Παράβλεψη

Πρόσβαση σε μη προσβάσιμο μέλος περικλείοντος είδους

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε προσομοιώνει πρόσβαση σε ένα μη προσβάσιμο μέλος ενός περικλείοντος είδους. Τέτοιου είδους προσβάσεις μπορεί να επιφέρουν επιπλοκές στην απόδοση.

Παράβλεψη

Μέθοδος με όνομα λειτουργίας κατασκευής

Η ονομασία μιας μεθόδου με όνομα λειτουργίας κατασκευής θεωρείται γενικά προγραμματισμός ελλιπούς στυλ. Όταν αυτή η επιλογή είναι ενεργοποιημένη, ο μεταγλωττιστής θα σηματοδοτήσει αυτό το σενάριο ως σφάλμα ή προειδοποίηση.

Προειδοποίηση

Αντιστοίχιση παραμέτρου

Η αντιστοίχιση μιας τιμής σε μια παράμετρο θεωρείται γενικά προγραμματισμός ελλιπούς στυλ. Όταν αυτή η επιλογή είναι ενεργοποιημένη, ο μεταγλωττιστής θα σηματοδοτήσει αυτό το σενάριο ως σφάλμα ή προειδοποίηση.

Παράβλεψη

Μη τοπικά προσαρμοσμένες σειρές χαρακτήρων

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση για μη τοπικά προσαρμοσμένη λεκτική σταθερά σειράς χαρακτήρων (π.χ. χωρίς το προσδιοριστικό //$NON-NLS-<n>$) ή για μη τοπικά προσαρμοσμένα προσδιοριστικά σειράς χαρακτήρων που δεν ανήκουν σε μια σειρά χαρακτήρων.

Παράβλεψη

Πιθανά προβλήματα προγραμματισμού

Κλάση με δυνατότητα σειριοποίησης χωρίς serialVersionUID

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε ένα είδος που υλοποιεί το "java.io.Serializable" δεν περιέχει ένα πεδίο serialVersionUID.

Προειδοποίηση

Η αντιστοίχιση δεν έχει κανένα αποτέλεσμα (π.χ. 'x = x')

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση κάθε φορά που μια αντιστοίχιση δεν έχει κανένα αποτέλεσμα (π.χ. 'x = x').

Προειδοποίηση

Πιθανή τυχαία αντιστοίχιση λογικής τιμής (π.χ. 'if (a = b)')

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίζει μια πιθανή τυχαία αντιστοίχιση λογικής τιμής (π.χ. 'if (a = b)').

Παράβλεψη

Μη ολοκληρωμένη ενότητα "finally"

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε μια πρόταση "finally" δεν ολοκληρώνεται κανονικά (π.χ. εάν περιέχει μια πρόταση return).

Προειδοποίηση

Κενή πρόταση

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια κενή πρόταση (π.χ. ένα επιπλέον ελληνικό ερωτηματικό).

Παράβλεψη

Χρήση πίνακα char στη συνένωση σειρών χαρακτήρων

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε χρησιμοποιείται μια έκφραση char[] σε συνενώσεις σειρών χαρακτήρων.

"hello" + new char[]{'w','o','r','l','d'}

Προειδοποίηση

Κρυφές ενότητες catch

Τοπικά σε μια πρόταση try, μερικές ενότητες catch μπορεί να υποκρύπτουν άλλες, π.χ.

try { throw new java.io.CharConversionException();
} catch (java.io.CharConversionException e) {
} catch (java.io.IOException e) {}.

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση για κρυμμένες ενότητες catch που αντιστοιχούν σε επιλεγμένες εξαιρέσεις.

Προειδοποίηση

Ανακριβής αντιστοιχία είδους για ορίσματα vararg

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια ανακριβής αντιστοιχία είδους για ορίσματα vararg.

Προειδοποίηση

Μετατροπές δημιουργίας και αναίρεσης πλαισίων

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια μετατροπή δημιουργίας και αναίρεσης πλαισίων. Η αυτόματη δημιουργία πλαισίων μπορεί να επηρεάσει αρνητικά την απόδοση.

Παράβλεψη

Πρόταση 'switch' χωρίς αναφορά στη σταθερά είδους απαρίθμησης

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια πρόταση switch η οποία δεν περιέχει προτάσεις case για κάθε σταθερά απαρίθμησης της οποίας γίνεται παραπομπή.

Παράβλεψη

Αποτυχία πεζών/κεφαλαίων πρότασης 'switch'

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση κάθε φορά που εντοπίζει μια περίπτωση switch χωρίς μια πρόταση 'break'. Επιτρέπονται μόνο οι περιπτώσεις switch.

Παράβλεψη

Παραπομπή null

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όταν εντοπίζει ότι δε γίνεται παραπομπή σε μια τοπική μεταβλητή που μπορεί να είναι null. Σημειώστε ότι η ανάλυση είναι απλή και αφορά μόνο σε περιπτώσεις, όπου υπάρχει κάτι ύποπτο.

Παράβλεψη

Επισκίαση ονόματος και διενέξεις

Δήλωση πεδίου που αποκρύπτει κάποιο άλλο πεδίο ή μεταβλητή

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

Παράβλεψη

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

Όταν είναι ενεργοποιημένη αυτή η επιλογή, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση εάν μια δήλωση τοπικής μεταβλητής αποκρύπτει ένα άλλο πεδίο ή μεταβλητή.

Παράβλεψη

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

Όταν είναι ενεργοποιημένη αυτή η επιλογή, ο μεταγλωττιστής επιπρόσθετα θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση εάν μια λειτουργία κατασκευής ή μια παράμετρος μεθόδου ορισμού υποκρύπτει ένα άλλο πεδίο ή μεταβλητή.

Απενεργοποιημένη

Παράμετρος είδους που αποκρύπτει άλλο είδος

Όταν είναι ενεργοποιημένη αυτή η επιλογή, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση εάν για παράδειγμα μια παράμετρος είδους μιας εσωτερικής κλάσης υποκρύπτει ένα εξωτερικό είδος.

Προειδοποίηση

Μέθοδοι που έχουν αντικατασταθεί αλλά δεν είναι ορατές στο πακέτο

Μια προεπιλεγμένη μέθοδος ενός πακέτου δεν είναι ορατή σε διαφορετικό πακέτο, και συνεπώς δε μπορεί να αντικατασταθεί. Όταν αυτή η επιλογή είναι ενεργοποιημένη, ο μεταγλωττιστής θα σηματοδοτήσει αυτό το σενάριο ως σφάλμα ή προειδοποίηση.

Προειδοποίηση

Διένεξη μεταξύ μεθόδου διεπαφής και προστατευμένης μεθόδου 'Object':

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε μια διεπαφή ορίζει ως μη συμβατή μια μέθοδο με μια μέθοδο "Object" που δεν μεταβιβάζεται. Μέχρι να επιλυθεί αυτή η διένεξη, δεν μπορεί να υλοποιηθεί μια τέτοιου είδους διεπαφή, π.χ.

interface I {
   int clone();
}

Προειδοποίηση

Καταργημένο και περιορισμένης πρόσβασης API

Καταργημένο API

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα σηματοδοτεί τη χρήση ενός καταργημένου API είτε ως σφάλμα είτε ως προειδοποίηση.

Προειδοποίηση

Ειδοποίηση χρήσης καταργημένου API εντός καταργημένου κώδικα

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα σηματοδοτήσει τη χρήση του καταργημένου API εντός καταργημένου κώδικα. Η σοβαρότητα του προβλήματος ελέγχεται με την επιλογή "Καταργημένο API".

Απενεργοποιημένη

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

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα σηματοδοτήσει την αντικατάσταση ή την υλοποίηση μιας καταργημένης μεθόδου. Η σοβαρότητα του προβλήματος ελέγχεται με την επιλογή "Καταργημένο API".

Απενεργοποιημένη

Απαγορευμένη παραπομπή (κανόνες πρόσβασης)

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα σηματοδοτήσει μια απαγορευμένη παραπομπή που καθορίζεται από τους κανόνες πρόσβασης.

Σφάλμα

Μη συνιστώμενη παραπομπή (κανόνες πρόσβασης)

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα σηματοδοτήσει μια μη συνιστώμενη παραπομπή που καθορίζεται από τους κανόνες πρόσβασης.

Προειδοποίηση

Μη απαραίτητος κώδικας

Δεν πραγματοποιείται ποτέ ανάγνωση της τοπικής μεταβλητής

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε δηλώνεται μια τοπική μεταβλητή αλλά δεν χρησιμοποιείται ποτέ εντός της εμβέλειάς της.

Προειδοποίηση

Δεν πραγματοποιείται ποτέ ανάγνωση της τοπικής παραμέτρου

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

Παράβλεψη

Έλεγχος μεθόδων αντικατάστασης και υλοποίησης

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί επιπρόσθετα ένα σφάλμα ή μια προειδοποίηση όποτε δηλώνεται μια παράμετρος αλλά δεν χρησιμοποιείται ποτέ εντός της εμβέλειάς της στις μεθόδους αντικατάστασης ή υλοποίησης.

Απενεργοποιημένη

Μη χρησιμοποιούμενη εισαγωγή

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

Προειδοποίηση

Μη χρησιμοποιημένα τοπικά και ιδιωτικά μέλη

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε δηλώνεται ένα τοπικό ή ιδιωτικό μέλος αλλά δεν χρησιμοποιείται ποτέ εντός της ίδιας μονάδας.

Προειδοποίηση

Μη απαραίτητη πρόταση else

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια μη απαραίτητη πρόταση else (π.χ. if (condition) return; else doSomething();)

Παράβλεψη

Μη απαραίτητη μετατροπή ή λειτουργία "instanceof"

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια μη απαραίτητη μετατροπή ή λειτουργία "instanceof" (π.χ. if (object instanceof Object) return;)

Παράβλεψη

Μη απαραίτητη δήλωση επιλεγμένης εξαίρεσης που προέκυψε

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια μη απαραίτητη δήλωση εξαίρεσης που προέκυψε.

Παράβλεψη

Έλεγχος μεθόδων αντικατάστασης και υλοποίησης

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί επιπρόσθετα ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια μη απαραίτητη δήλωση εξαίρεσης που προέκυψε σε μια μέθοδο αντικατάστασης ή υλοποίησης.

Απενεργοποιημένη

Μη χρησιμοποιημένη ετικέτα break/continue

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση κάθε φορά που εντοπίζει μια μη χρησιμοποιούμενη ετικέτα 'break' ή 'continue'.

Προειδοποίηση

Γενικά είδη

Μη ελεγμένη λειτουργία γενικού είδους

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

Προειδοποίηση

Χρήση αδιαμόρφωτου είδους

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση κάθε φορά που εντοπίζει χρήση ενός αδιαμόρφωτου είδους (π.χ. Λίστα αντί για Λίστα<Σειρά χαρακτήρων>).

Παράβλεψη

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

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει ένα όριο είδους που εμπλέκει ένα τελικό είδος.

Προειδοποίηση

Σημειώσεις

Χωρίς σημείωση "@Override"

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει μια μέθοδο να αντικαθιστά μια άλλη υλοποιημένη μέθοδο, και να λείπει η σημείωση "@Override".

Παράβλεψη

Χωρίς σημείωση "@Deprecated"

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει ένα καταργημένο είδος χωρίς την επιπρόσθετη σημείωση "@Deprecated".

Παράβλεψη

Χρήση σημείωσης ως υπερ-διεπαφής

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει ένα είδος να υλοποιεί μια σημείωση. Παρόλο που είναι δυνατόν, θεωρείται κακή πρακτική.

Προειδοποίηση

Στοιχεία προειδοποίησης που δεν έχουν αντιμετωπιστεί στο "@SuppressWarnings"

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα δημιουργεί ένα σφάλμα ή μια προειδοποίηση όποτε εντοπίσει ένα στοιχείο προειδοποίησης που δεν έχει αντιμετωπιστεί σε ένα σχόλιο "@SuppressWarnings".

Προειδοποίηση

Ενεργοποίηση σημειώσεων "@SuppressWarnings"

Όταν είναι ενεργοποιημένη, ο μεταγλωττιστής θα επεξεργάζεται σημειώσεις "@SuppressWarnings".

Ενεργοποιημένη

Σχετικές έννοιες

Προβολή "Προβλήματα"
Ταχεία επιδιόρθωση
Εργαλείο δόμησης Java