Avatar ·

كيفية إنشاء مصفوفة عامة (generic array) في جافا؟ حل المشكلة

مرحباً بالجميع! لقد بدأت مؤخراً في تعلم Java وواجهت مشكلة عند العمل مع الأدوية الجنيسة (Generics). أحتاج إلى إنشاء مصفوفة من عناصر من نوع عام، لكن المترجم يعطي خطأ. إليك الكود الخاص بي: ```java public class MyContainer { private T[] array; public MyContainer(int size) { array = new T[size]; // خطأ في الترجمة: "Type parameter 'T' cannot be instantiated directly" } } ``` أفهم أن Java لا تسمح بإنشاء مصفوفات من أنواع عامة مباشرة بسبب محو النوع (type erasure). لكن كيف يمكن تنفيذ مثل هذا الهيكل بشكل صحيح؟ أحتاج إلى تخزين العناصر في مصفوفة والقدرة على الوصول إليها بواسطة الفهرس. لقد جربت استخدام `new Object[size]` مع تحويل النوع، لكن هذا يسبب تحذيراً "unchecked cast". أرجو إرشادي حول كيفية إنشاء مصفوفة عامة بشكل صحيح في Java بحيث يكون الكود آمنًا من حيث النوع ولا يعطي تحذيرات؟ هل هناك طرق بديلة؟ لقد سمعت عن `Array.newInstance()`، لكني لا أفهمه تماماً.