Javaمثال حول تعريف و إستدعاء Generic Method في جافا
في المثال التالي قمنا ببناء دالة إسمها printArray
, نوعها public static void
.
هذه الدالة مصممة بشكل عام للتعامل مع مصفوفة ليس لها نوع محدد و هذا سبب وضع الحرف <E>
بين الكلمتين static
و void
.
عند استدعاء هذه الدالة نمرر لها مصفوفة من أي نوع فتقوم بعرض محتواها.
إذاً E[]
تعني أنه عند استدعاء هذه الدالة يجب تمرير مصفوفة من أي نوع كان فيها كـ Argument مكان الباراميتر array
.
في كل مرة تقوم فيها باستدعاء الدالة printArray()
يتم تبديل الحرف E
بنوع المصفوفة التي تم إدخالها فيها مكان الباراميتر array
.
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