بطلاقة: طرق التمديد الثابتة لجافا
طلِق يسمح لك باستدعاء عمليات Java الثابتة كما لو كانت عمليات كائن. على سبيل المثال ، بدلاً من الكتابة:
assertNotEmpty(getHttpContent(createUrl(website, "styles.css")));
ستكتب:
website.createUrl("styles.css").getHttpContent().assertNotEmpty();
طلِق يعمل عن طريق تحويل شجرة بناء الجملة المجردة أثناء التجميع. إذا تعذر حل إحدى الطرق باستخدام قواعد Java العادية ، طلِق سيعيد كتابته على هذا النحو:
import static
حتى يمكن حلها. لا توجد تعليقات توضيحية مطلوبة.
في المثال أعلاه ، ستكون تواقيع أسلوب الامتداد:
public static URL createUrl(Website website, String path) {}public static String getHttpContent(URL url) {}public static void assertNotEmpty(String string) {}
تكون طرق الامتداد مفيدة عندما لا يمكنك (أو لا تريد) إضافة طرق إلى فئة أو فئة فرعية ، أو عندما تعمل باستخدام واجهة. بشكل عام ، تسمى هذه الطرق “طرق المنفعة” ، ولكن في معظم لغات البرمجة الأخرى ، يمكنك فقط تسميتها “وظائف”.
طلِق يتم تنفيذه باعتباره أ javac
البرنامج المساعد المترجم وليس له تبعيات وقت التشغيل. تتطابق ملفات الفئة الناتجة مع التعليمات البرمجية المكتوبة باستخدام استدعاءات الطريقة الثابتة العادية.
طلِق يدعم JDK 9 وما فوق.
بداية سريعة
قم بتنزيل البرطمان وضعه على مسار الفصل الخاص بك وقم بتشغيله javac
استخدام -Xplugin:fluent
:
wget https://github.com/rogerkeays/fluent/raw/main/fluent.jarjavac -cp fluent.jar -Xplugin:fluent File.java
تثبيت باستخدام Maven
طلِق لم يتوفر بعد على Maven Central ، ومع ذلك يمكنك تثبيته محليًا مثل هذا:
wget https://github.com/rogerkeays/fluent/raw/main/fluent.jarmvn install:install-file -DgroupId=jamaica -DartifactId=fluent -Dversion=0.1.0 -Dpackaging=jar -Dfile=fluent.jar
بعد ذلك ، أضف التبعية إلى ملف pom.xml
:
ابنيها بنفسك
طلِق تم تصميمه باستخدام برنامج POSIX shell script:
git clone https://github.com/rogerkeays/fluent.gitcd fluent./build.sh
إذا كان نظام التشغيل الخاص بك لا يتضمن sh
لا ينبغي أن يكون من الصعب للغاية التحويل إلى أي قذيفة تستخدمها. أعني ، نحن نتحدث عن ملف جافا واحد وملف نصي هنا.
دعم JDK
طلِق تم اختباره باستخدام JDKs التالية:
- دينار أردني -09.0.4
- دينار أردني 10.0.2
- دينار أردني -11.0.8
- دينار أردني -12.0.2
- دينار أردني -13.0.2
- jdk-14.0.2
- jdk-15.0.2
- jdk-16.0.2
- jdk-17.0.2
- jdk-18.0.2.1
- jdk-19.0.2
- jdk-20.0.1
- jdk-21 (الوصول المبكر)
- jdk-22 (الوصول المبكر)
دعم IDE
لا يوجد حاليا دعم IDE ل طلِق. نرحب بالمساهمات. قد يكون من الممكن الحصول على IDE الخاص بك لتحميل ملف طلِق plugin في مترجمه. إذا جعلته يعمل ، من فضلك انشر شيئًا على جيثب حتى نتمكن جميعًا من الاستفادة.
مشاكل معروفة
- يجب عليك استخدام الأقواس حول العناصر الأولية عند استدعاء طريقة التمديد: على سبيل المثال
(0).inc()
- طلِق قد لا يكون متوافقًا مع ملفات أخرى
javac
الإضافات ، على الرغم من أنه حتى الآن يبدو أنها تعمل بشكل جيد مع Lombok ، على الأقل. - طلِق سيجعلك مبرمجًا أكثر إنتاجية ، مما قد يتعارض مع سياسة الشركة.
موارد ذات الصلة
- kotlin: لغة JVM التي تدعم طرق الامتداد خارج الصندوق.
- مشروع لومبوك: والد الأب
javac
الخارقة. - دون رادع: التهرب من المافيا الاستثناءات المحددة في جافا.
- مشغل جافا الزائد: أ
javac
البرنامج المساعد باستخدام أفكار مماثلة. - بطلاقة المضرب: بناء جملة بطلاقة للمضرب.
- المزيد من الأشياء من المؤلف لم تعرف أبدًا أنك تريدها