import module
استيراد وحدة كاملة (import module) import module
منذ Java 25 (JEP 511)، import module يستورد كل الحزم المُصدَّرة من وحدة (module) بسطر واحد — بدل تكرار import لكل حزمة فرعية.
الاستيراد التقليدي (import java.util.List;) يستورد صنفًا واحدًا، وimport pkg.*; يستورد كل الأصناف في حزمة واحدة فقط. منذ Java 25، import module اسم_الوحدة; يستورد كل الحزم المُصدَّرة من وحدة (module) كاملة — مثل java.base التي تضم java.util وjava.io وjava.net وغيرها من أشهر الحزم.
تعمل فقط مع أسماء وحدات (modules) حقيقية — لا يمكن استخدامها لاستيراد حزم موجودة على classpath تقليدي غير مُحزَّم كوحدة JPMS. لو تعارض اسم صنف بين وحدتين مستوردتين معًا، import صريح لصنف واحد يفوز دائمًا في حل هذا التعارض.
الصياغة
import module java.base;
📄 مثال
import module java.base;
void main() {
List<String> names = new ArrayList<>();
Map<String, Integer> ages = new HashMap<>();
// كل هذه الأصناف متاحة الآن دون import منفصل لكل حزمة
}أهم النقاط
| العنصر | الوظيفة |
|---|---|
| import module اسم_الوحدة; | يستورد كل الحزم المُصدَّرة من الوحدة المحددة |
| java.base | الوحدة الأساسية في منصّة جافا — تضم java.util وjava.io وjava.net وغيرها |
💡 نصائح عملية
- مفيدة بالذات مع الملفات المختصرة (compact source files) — الميزتان صُمّمتا معًا لتبسيط بداية الكتابة
- في مشاريع الفريق الكبيرة، import صريحة لكل صنف تبقى أوضح لمن يقرأ الكود لاحقًا
⚠️ أخطاء شائعة
- توقع أنها تعمل مع مكتبات خارجية على classpath تقليدي — تعمل فقط مع وحدات (modules) حقيقية
- تجاهل تعارض اسم صنف بين وحدتين مستوردتين — يحتاج import صريح للصنف المقصود لحل التعارض
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.