Σχολιασμοί Java (με παραδείγματα)

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

Οι σχολιασμοί Java είναι μεταδεδομένα (δεδομένα σχετικά με τα δεδομένα) για τον πηγαίο κώδικα του προγράμματος.

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

Οι σχολιασμοί ξεκινούν με @. Η σύνταξή του είναι:

 @AnnotationName 

Ας πάρουμε ένα παράδειγμα @Overrideσχολιασμού.

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

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

Παράδειγμα 1: Παράδειγμα σχολιασμού @Override

 class Animal ( public void displayInfo() ( System.out.println("I am an animal."); ) ) class Dog extends Animal ( @Override public void displayInfo() ( System.out.println("I am a dog."); ) ) class Main ( public static void main(String() args) ( Dog d1 = new Dog(); d1.displayInfo(); ) ) 

Παραγωγή

 Είμαι σκύλος. 

Σε αυτό το παράδειγμα, η μέθοδος displayInfo()υπάρχει τόσο στο Superclass Animal όσο και στην υποκατηγορία Dog. Όταν καλείται αυτή η μέθοδος, καλείται η μέθοδος της υποκατηγορίας αντί της μεθόδου στο superclass.

Μορφές σχολιασμού

Οι σχολιασμοί μπορεί επίσης να περιλαμβάνουν στοιχεία (μέλη / χαρακτηριστικά / παράμετροι).

1. Σχολιασμοί δείκτη

Οι σχολιασμοί δεικτών δεν περιέχουν μέλη / στοιχεία. Χρησιμοποιείται μόνο για τη σήμανση μιας δήλωσης.

Η σύνταξή του είναι:

 @AnnotationName () 

Επειδή αυτοί οι σχολιασμοί δεν περιέχουν στοιχεία, μπορούν να αποκλειστούν παρενθέσεις. Για παράδειγμα,

 @Καταπατώ 

2. Σχολιασμοί ενός στοιχείου

Ένας σχολιασμός ενός στοιχείου περιέχει μόνο ένα στοιχείο.

Η σύνταξή του είναι:

 @AnnotationName (elementName = "elementValue") 

Εάν υπάρχει μόνο ένα στοιχείο, είναι σύμβαση να ονομάσουμε αυτό το στοιχείο ως τιμή.

 @AnnotationName (τιμή = "elementValue") 

Σε αυτήν την περίπτωση, το όνομα του στοιχείου μπορεί επίσης να αποκλειστεί. Το όνομα του στοιχείου θα είναι από προεπιλογή τιμή.

 @AnnotationName ("elementValue") 

3. Σχολιασμοί πολλαπλών στοιχείων

Αυτοί οι σχολιασμοί περιέχουν πολλά στοιχεία διαχωρισμένα με κόμματα.

Η σύνταξή του είναι:

 @AnnotationName (element1 = "value1", element2 = "value2") 

Τοποθέτηση σχολιασμού

Κάθε δήλωση μπορεί να επισημανθεί με σχολιασμό τοποθετώντας την πάνω από αυτήν τη δήλωση. Από την Java 8, οι σχολιασμοί μπορούν επίσης να τοποθετηθούν πριν από έναν τύπο.

1. Πάνω από τις δηλώσεις

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

Παράδειγμα 2: Παράδειγμα σχολιασμού @SuppressWarnings

 import java.util.*; class Main ( @SuppressWarnings("unchecked") static void wordsList() ( ArrayList wordList = new ArrayList(); // This causes an unchecked warning wordList.add("programiz"); System.out.println("Word list => " + wordList); ) public static void main(String args()) ( wordsList(); ) ) 

Παραγωγή

 Λίστα λέξεων => (προγραμματιστής) 

Εάν το παραπάνω πρόγραμμα συντάσσεται χωρίς τη χρήση του @SuppressWarnings("unchecked")σχολιασμού, ο μεταγλωττιστής θα συνεχίσει να μεταγλωττίζει το πρόγραμμα, αλλά θα δίνει προειδοποιήσεις όπως:

Το Main.java χρησιμοποιεί μη ελεγμένες ή μη ασφαλείς λειτουργίες. Λίστα λέξεων => (προγραμματιστής)

Λαμβάνουμε την προειδοποίηση

 Το Main.java χρησιμοποιεί μη ελεγμένες ή μη ασφαλείς λειτουργίες 

λόγω της ακόλουθης δήλωσης.

 ArrayList wordList = new ArrayList(); 

This is because we haven't defined the generic type of the array list. We can fix this warning by specifying generics inside angle brackets .

 ArrayList wordList = new ArrayList(); 

2. Type annotations

Before Java 8, annotations could be applied to declarations only. Now, type annotations can be used as well. This means that we can place annotations wherever we use a type.

Constructor invocations

 new @Readonly ArrayList() 

Type definitions

 @NonNull String str; 

This declaration specifies non-null variable str of type String to avoid NullPointerException.

 @NonNull List newList; 

This declaration specifies a non-null list of type String.

 List newList; 

This declaration specifies a list of non-null values of type String.

Type casts

 newStr = (@NonNull String) str; 

extends and implements clause

 class Warning extends @Localized Message 

throws clause

 public String readMethod() throws @Localized IOException 

Type annotations enable Java code to be analyzed better and provide even stronger type checks.

Types of Annotations

1. Predefined annotations

  1. @Deprecated
  2. @Override
  3. @SuppressWarnings
  4. @SafeVarargs
  5. @FunctionalInterface

2. Meta-annotations

  1. @Retention
  2. @Documented
  3. @Target
  4. @Inherited
  5. @Repeatable

3. Custom annotations

These annotation types are described in detail in the Java Annotation Types tutorial.

Use of Annotations

  • Compiler instructions - Annotations can be used for giving instructions to the compiler, detect errors or suppress warnings. The built-in annotations @Deprecated, @Override, @SuppressWarnings are used for these purposes.
  • Compile-time instructions - Compile-time instructions provided by these annotations help the software build tools to generate code, XML files and many more.
  • Οδηγίες χρόνου εκτέλεσης - Ορισμένοι σχολιασμοί μπορούν να οριστούν ώστε να παρέχουν οδηγίες στο πρόγραμμα κατά την εκτέλεση. Αυτοί οι σχολιασμοί έχουν πρόσβαση μέσω Java Reflection.

ενδιαφέροντα άρθρα...