Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Javaمثال حول تعريف و إستدعاء Generic Method في جافا

في المثال التالي قمنا ببناء دالة إسمها printArray, نوعها public static void.
هذه الدالة مصممة بشكل عام للتعامل مع مصفوفة ليس لها نوع محدد و هذا سبب وضع الحرف <E> بين الكلمتين static و void.

عند استدعاء هذه الدالة نمرر لها مصفوفة من أي نوع فتقوم بعرض محتواها.
إذاً E[] تعني أنه عند استدعاء هذه الدالة يجب تمرير مصفوفة من أي نوع كان فيها كـ Argument مكان الباراميتر array.

في كل مرة تقوم فيها باستدعاء الدالة printArray() يتم تبديل الحرف E بنوع المصفوفة التي تم إدخالها فيها مكان الباراميتر array.


Main.java
public class Main {
 
    // argument عند استدعاءها نمرر لها مصفوفة من أي نوع كـ .void هنا قمنا بتعريف دالة نوعها
    public static <E> void printArray( E[] array )
    {
        // التي ندخلها في الدالة عند استدعاءها array تعرض جميع عناصر المصفوفة foreach هنا قمنا بإنشاء حلقة
        for( E element : array )
            System.out.print(element + " ");
 
        System.out.println();
 
    }
 
 
    public static void main(String[] args) {
 
        // هنا قمنا بتعريف 6 مصفوفات, كل واحدة فيهم تملك 5 عناصر من نوع مختلف
        Integer   arr1[] = {1, 2, 3, 4, 5};
        Long      arr2[] = {1l, 2l, 3l, 4l, 5l};
        Float     arr3[] = {1f, 2f, 3f, 4f, 5f};
        Double    arr4[] = {1d, 2d, 3d, 4d, 5d};
        Character arr5[] = {'a', 'b', 'c', 'd', 'e'};
        String    arr6[] = {"Generics ", "are ", "easy ", "to ", "understand"};
 
        // لعرض محتوى جميع المصفوفات printArray() هنا قمنا باستدعاء الدالة
        printArray( arr1 );
        printArray( arr2 );
        printArray( arr3 );
        printArray( arr4 );
        printArray( arr5 );
        printArray( arr6 );
 
    }
 
}

سنحصل على النتيجة التالية عند التشغيل.

1 2 3 4 5
1 2 3 4 5
1.0 2.0 3.0 4.0 5.0
1.0 2.0 3.0 4.0 5.0
a b c d e
Generics are easy to understand