Avatar ·

كيفية تحويل Stream Java 8 إلى Array (مصفوفة)؟ دليل مفصل

مرحبًا بالجميع! لقد بدأت للتو في تعلم Java 8 و Stream API. واجهت مهمة بسيطة للوهلة الأولى: لدي قائمة من السلاسل النصية (strings) قمت بتحويلها إلى stream، ثم قمت بالتصفية (filter) والترتيب (sort)، والآن أريد الحصول على النتيجة كمصفوفة عادية من نوع String[] لأمررها إلى دالة قديمة تقبل فقط مصفوفة. إليك الكود الذي لدي: ```java List myList = Arrays.asList("banana", "apple", "cherry", "date"); Stream myStream = myList.stream() .filter(s -> s.startsWith("a")) .sorted(); ``` الآن أحتاج إلى الحصول على String[]. حاولت استدعاء الدالة `toArray()` على الـ stream، لكنها تُرجع `Object[]` وليس `String[]`. عندما أحاول تحويل النتيجة: ```java String[] resultArray = (String[]) myStream.toArray(); ``` أحصل على ClassCastException أثناء التشغيل. يبدو أن toArray() بدون معاملات تُرجع مصفوفة من نوع Object[]. أرجو إرشادي، كيف يمكن تحويل Stream إلى String[] بشكل صحيح؟ هل هناك طريقة؟