من فضلك تسجيل الدخول أو تسجيل لتفعل ذلك.

بطلاقة: طرق التمديد الثابتة لجافا

طلِق يسمح لك باستدعاء عمليات 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 ، على الأقل.
  • طلِق سيجعلك مبرمجًا أكثر إنتاجية ، مما قد يتعارض مع سياسة الشركة.

موارد ذات الصلة

اقرأ أكثر

مرسيدس تتيح لسائقي سياراتها استخدام ChatGPT للتحكم الصوتي فيها
GA4 للفنادق: كل ما يحتاج أصحاب الفنادق معرفته

Reactions

0
0
0
0
0
0
بالفعل كان رد فعل لهذا المنصب.

ردود الفعل