Java 17
ما هو Java 17؟
صدر Java 17 في سبتمبر 2021 وهو إصدار LTS. قبله كان Java 11 هو LTS الواسع، ثم جاء Java 21. في 17 أصبحت records وsealed class وpattern matching لـ instanceof جاهزة. كتل النص جاءت قبل ذلك وهي موجودة في 17 أيضاً.
فيمَ يُستخدم Java 17؟
Java 17 هدف لتطبيق خادم ومكتبة وبعض أدوات بناء Android.
- إطار خادم مثل Spring
- نقل كود Java 8 أو 11 القديم
- نوع بيانات قصير بـ record
- إبقاء أدوات JDK ثابتة
ماذا يمكن فعله باستخدام Java 17؟
بـ Java 17 يمكن نقل برنامج مكتوب على Java 11 إلى صياغة أحدث بعد الاختبار. في مشروع جديد يقصّر record نوع البيانات. أحدث صياغة، ومنها أشياء من LTS لاحق، ليست في 17.
هل تعلم Java 17 صعب؟
لمن يعرف Java، الإصدار 17 ليس لغة جديدة. الصعوبة في الانتقال من JDK قديم وواجهات داخلية أُزيلت وإصدار أداة البناء. إذا لم يُظهر java --version الرقم 17 فالكود ليس على 17.
المزايا والحدود
الميزة: دعم لسنوات وثبات ومكتبات واسعة. الحد: بعض إمكانات اللغة من 21 وما بعده ليست هنا. إذا بقي المشروع على 8 فالانتقال لا يخلو من اختبار.
أفكار أساسية
JDK يعطي اللغة والأدوات. JRE للتشغيل فقط. record صنف قصير بحقول.
- LTS تعني دعماً طويلاً
- sealed class يحد من يرثه
- pattern matching يقصّر فحص instanceof
- Gradle أو Maven يختار أي JDK يبني المشروع
مثال قصير
انظر أولاً إلى الإصدار المثبّت. ثم يكتب record نوع بيانات صغير هكذا.
java --version
record Point(int x, int y) {}
أسئلة شائعة
- هل Java 17 أحدث إصدار؟ لا. يوجد LTS أحدث. 17 ما زال هدفاً في أماكن كثيرة.
- هل Java 17 ولغة Java مختلفان؟ لا. 17 إصدار من اللغة.
- هل Java 17 يكفي لـ Android؟ نعم إذا سمحت أداة البناء. ملف Gradle في المشروع يُظهر ذلك.