لمحة جافاوية 21: مزايا جديدة

السلام عليكم

في خضم اهتمامي بجديد النسخة الخامسة
سأتكلم اليوم عن أحد المزايا في هذه الإصدارة
ألا وهي أن تكون الدالة بمدخلات متغيرة العدد varargs
بشرط أن تكون هذه المدخلات من نفس النوع
الفكرة من الموضوع كالتالي
أحياناً يكون لدينا عدد متغير من المدخلات
مثلاً نريد أن نأخذ من عددين إلى مالانهاية من الأعداد
في دالة ترجع أكبر عدد من مجموعة أعداد
لدينا حلين لهذه المعضلة
الحل القديم وهو المصفوفة
نقوم بجعل المدخلات عبارة عن مصفوفة
الشيفرة التالية توضح الحل بالمصفوفة

 public static int max(int[] values)
    {
        int max = values[0];

        for(int aValue : values)
        {
            if (aValue > max) max = aValue;
        }

        return max;
    }

انظر إلى شكل الدالة عندما تريد مناداتها

max(new int[] {1, 7, 2, 9, 8});

أنا لا أحب هذا المنظر مطلقاً
أحب أن أرى الشيفرة خاصتي مرتبة أكثر
لأني أعاني من عدم الترتيب أصلاً
الحل الجديد:
جافا وفرت شيئاً جديداً للمبرمجين
لا يحل أي مشكلة لكنه يجعل شكل الشيفرة جميل
يسمى varargs أو المدخلات متغيرة العدد

    public static int max(int... values)
    {
        int max = values[0];

        for(int aValue : values)
        {
            if (aValue > max) max = aValue;
        }

        return max;
    }

نلاحظ أن الثلاث نقاط تمثل إلى آخره
الآن أريد أن أناديها انظر كيف

max(1, 7, 2, 9, 8);

في النهاية هذه الأرقام ستترجم إلى مصفوفة
ونتعامل معها في الدالة على هذا الأساس
وعلى هذا تستطيع مناداة الدالة من هذا الشكل بالطريقتين
اما بالمصوفوفة أو كمدخلات عادية
ملاحظة: يجب أن تكون varargs آخر مدخل من المدخلات
وإلا سيعترض المترجم عليها
مثال:

public void someThing(int x,String... string)

لن أطيل عليكم
كانت هذه لمحتنا لهذا اليوم

مراجع:
1-مقالة بعنوان Java 5 Features: Part-II

http://java.codeproject.com/KB/java/Java5FeaturesII.aspx

تحياتي

Tags: , , ,

2 Responses to “لمحة جافاوية 21: مزايا جديدة”

  1. عبدو قال:

    رائع جدا اخي علاء
    اختيار موفق لمقالتك كالعادة طبعا ..
    اعجبتني صراحة الفكرة هههههه
    وغريبة ع الجافا انو ما في انترفيس بس بلغ اند بلي

    كل التحية يا نوارة .. (F)

  2. admin قال:

    السلام عليكم

    شكراً على الإطراء
    الذي لا أستحقه كالعادة
    على فكرة الجافا لغة جميلة
    لكنها تهتم بالمنطق والعلم أكثر من السهولة
    لهذا يظهر في بعض الأحيان صعوبتها
    على المبتدئين فيها

    تحياتي

Leave a Reply