Avatar ·

كيفية إنشاء مصفوفة من نوع عام في Java؟ (Generic Array)

مرحباً بالجميع! بدأت في دراسة الأدوية (العامة) في Java وواجهت مشكلة لم أتمكن من حلها لعدة ساعات. أحتاج إلى إنشاء دالة تأخذ مصفوفة من أي نوع وتعيد مصفوفة جديدة تحتوي فقط على العناصر الفريدة. على سبيل المثال، أريد تمرير `String[]` والحصول على `String[]` بدون تكرارات، أو تمرير `Integer[]` والحصول على `Integer[]`. إليك الكود الخاص بي: ```java public class UniqueArray { public static T[] getUnique(T[] input) { // أولاً أريد إنشاء مصفوفة للنتيجة، لكنني لا أعرف حجمها T[] result = new T[input.length]; // خطأ في الترجمة! // ... باقي المنطق return result; } } ``` المترجم يعطي خطأ: "Cannot create a generic array of T". قرأت أنه في Java لا يمكن إنشاء مصفوفات من أنواع عامة مباشرة بسبب محو النوع (type erasure). لكن كيف يمكن التعامل مع هذا؟ هل هناك حل بديل؟ أحتاج تحديداً إلى إعادة مصفوفة من النوع `T[]`، وليس `Object[]` أو `List`، لأن