English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمات Java الأساسية

Java Control Flow

Java Arrays

Java Object-Oriented (I)

Java Object-Oriented (II)

Java Object-Oriented (III)

معالجة الاستثناءات Java

Java List

Java Queue (Queue)

Java Map Collections

Java Set Collections

Java Input/Output (I/O)

Java Reader/Writer

مواضيع أخرى في Java

التعليقات Java (Annotations)

في هذا الدليل، سنتعلم من خلال الأمثلة ما هي التعليقات، والتعليقات المختلفة في Java وكيفية استخدامها.

التعليقات في Java هي بيانات عن بيانات البرنامج (بيانات عن بيانات).

تقدم هذه التعليقات معلومات إضافية عن البرنامج، لكنها ليست جزءًا من البرنامج المدمج. لا تؤثر هذه التعليقات على تنفيذ البرنامج المدمج.

تبدأ التعليقات بالـ @. لغتها هي:

@AnnotationName

لنأخذ @Override ك مثال.

@Override يحدد أن الطريقة المميزة بهذا التعليق هي إعادة كتابة الطريقة باستخدام نفس الاسم والنوع العائلي والقائمة على المعاملات.

عندما يتم إعادة كتابة الطريقة، ليس من الضروري استخدام @Override. ولكن، إذا استخدمناه، فإن المترجم سيقدم خطأ إذا حدث خطأ (مثل نوع المعاملات غير صحيح) عند إعادة كتابة الطريقة.

مثال 1: @Override شرح مثال

class Animal {
  public void displayInfo() {
    System.out.println( "أنا حيوان.");
  }
}
class Dog extends Animal {
  @Override
  public void displayInfo() {
    System.out.println( "أنا كلب.");
  }
}
class Main {
  public static void main(String [ ] args ){
    Dog d1 = new Dog();
    d1.displayInfo();
  }
}

نتائج الإخراج

أنا كلب.

في هذا المثال، يتم تعريف الطريقة displayInfo() في الكلاس الأم Animal وكلاس الفرع Dog. عند استدعاء هذه الطريقة، سيتم استدعاء الطريقة في الكلاس الفرع، وليس الطريقة في الكلاس الأم.

تنسيق التعليقات

يمكن أن تحتوي التعليقات أيضًا على عناصر (أعضاء/خصائص/معلمات).

1. تعليقات العلامة

تعليقات العلامة لا تحتوي على أعضاء/عناصر. إنها تستخدم فقط لوضع علامة على الإعلانات.

لغة الجملة الخاصة بها هي:

@AnnotationName()

بما أن هذه التعليقات لا تحتوي على عناصر، لذا لا تحتاج إلىtheses. على سبيل المثال،

@Override

2. تعليقات العنصر الواحد

تعليقات العنصر الواحد تحتوي على عنصر واحد فقط.

لغة الجملة الخاصة بها هي:

@AnnotationName(elementName = "elementValue")

إذا كان هناك عنصر واحد فقط، فإنه من المعتاد تسمية العنصر بـ value.

@AnnotationName(value = "elementValue")

في هذه الحالة، يمكن أيضًا إزالة اسم العنصر. اسم العنصر الافتراضي هو value.

@AnnotationName("elementValue")

3. تعليقات متعددة العناصر

تتضمن هذه التعليقات عدة عناصر منفصلة بالكومياء.

لغة الجملة الخاصة بها هي:

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

موقع التعليقات

يمكن وضع أي إعلان عن طريق وضعها أعلى بيانات الإعلان لوضع علامة على التعليقات. بدءاً من Java 8، يمكن أيضًا وضع التعليقات قبل الأنواع.

1. أعلى بيانات الإعلان

كما ذكرت سابقاً، يمكن وضع التعليقات البرمجية في الأنواع، والطرق، والواجهات، والحقول، وأعمدة الأنظمة البرمجية الأخرى في الأعلى.

مثال 2: @SuppressWarnings شرح مثال

import java.util.*;
class Main {
  @SuppressWarnings("unchecked")
  static void wordsList() {
    ArrayList wordList = new ArrayList<>();
    // هذا سينتج تحذير غير مكتشف
    wordList.add("w3codebox"); 
    System.out.println("Word list => " + wordList);
  }
  public static void main(String args[]) {
    wordsList();
  }
}

نتائج الإخراج

Word list => [w3codebox]

إذا تم ترميز البرنامج المذكور أعلاه دون استخدام تعليقة @SuppressWarnings("unchecked")، فإن محرر الكود سيرمز البرنامج، ولكن سيقدم التحذير التالي:

Main.java يستخدم عمليات غير مختبرة أو غير آمنة.
Word list => [w3codebox]

نحن نحصل على التحذير

Main.java يستخدم عمليات غير مختبرة أو غير آمنة

بسبب الخطوات التالية.

ArrayList wordList = new ArrayList<>();

هذا لأننا لم نحدد نوع المصفوفة الحصرية العامة بعد. يمكننا حل هذا التحذير من خلال تحديد الجينات في尖ائيس <>.

ArrayList<String> wordList = new ArrayList<>();

2. تعليقات النوع

قبل Java 8، يمكن استخدام التعليقات فقط في التصريحات. الآن، يمكن استخدام تعليقات النوع أيضًا. مما يعني أننا يمكن أن نضع التعليقات في أي مكان نستخدم فيه النوع.

ندعو إلى بناء المصفوفة

new @Readonly ArrayList<>()

تعريف النوع

@NonNull String str;

هذا التصريح يحدد متغير str من نوع String غير فارغ لتجنب NullPointerException.

@NonNull List<String> newList;

هذه التصريح تحدد قائمة غير فارغة لنوع String.

List<@NonNull String> newList;

هذه التصريح تحدد قائمة القيم الفارغة لنوع String.

تحويل النوع
newStr = (@NonNull String) str;

فقرة extends و implements

class Warning extends @Localized Message

throws الفقرة

public String readMethod() throws @Localized IOException

تساعد التعليقات النوعية على تحسين تحليل كود Java، وتقدم فحصًا نوعيًا أقوى.

أنواع التعليقات

1. التعليقات المسبقة

  1. @Deprecated

  2. @Override

  3. @SuppressWarnings

  4. @SafeVarargs

  5. @FunctionalInterface

2. مقدمة التعليقات

  1. @Retention

  2. @Documented

  3. @Target

  4. @Inherited

  5. @Repeatable

3. تعليقات مخصصة

هذه الأنواع من التعليقات فيأنواع التعليقات Javaيوجد وصف مفصل في الدليل.

استخدام التعليقات

  • تعليمات المحلل - يمكن استخدامها لتقديم تعليمات للمحلل، التحقق من الأخطاء أو إزالة التحذيرات. مثل التعليقات المدمجة @Deprecated، @Override، @SuppressWarnings.

  • تعليمات التجميع - تقدم هذه التعليقات تعليمات لتوليد الأدوات البرمجية عند التجميع، ملفات XML وما إلى ذلك.

  • تعليمات التشغيل - يمكن تعريف بعض التعليقات لتقديم تعليمات للبرنامج عند تشغيله. هذه التعليقات يتم الوصول إليها باستخدام Java Reflection.