التغييرات الرئيسية:
- يتم دعم JChar كنوع الإرجاع. من أجل التوافق، يرث JChar من "str" وينفذ تحويلًا ضمنيًا إلى "int". ولذلك، فإنه يمرر الشيكات في العقود. ولكن هذا يعني أنه لم يعد يعتبر نوعًا رقميًا في Python وبالتالي يتم تقييم isinstance(c, int) إلى False، وهو ما يتوافق مع قواعد تحويل نوع Java.
- تم تقديم عامل تشغيل لإخراج نوع Java، Type@obj (@ هو عامل Python للمنتج الداخلي؛ Java ليس لديه واحد).
- تمت إضافة تدوين لإنشاء صفائف Java. اكتب [s1] [s2] [s3] للمصفوفات ذات الحجم الثابت، اكتب [:] [:] [:] للمصفوفات التي سيتم إنشاؤها لاحقًا.
- يتيح لك @FunctionalInterface إنشاء وظائف Java من كائنات Python باستخدام __call__.
- تمت إزالة JIterator المهمل، واستخدام JException كمصنع، وget_default_jvm_path، وjpype.reflect.
- افتراضيًا، لا يتم تحويل سلاسل Java إلى سلاسل Python.
- لقد قامت بايثون بإهمال "__int__"، لذا فإن عمليات النقل الضمنية بين أنواع الأعداد الصحيحة وأنواع الفاصلة العائمة ستنتج خطأ TypeError.
- لقد تم إهمال استخدام JException. لالتقاط كافة الاستثناءات، أو التحقق من أن الكائن هو نوع استثناء Java، استخدم java.lang.Throwable.
- تنعكس الآن الأسباب المتتالية لاستثناءات Java في إطارات مكدس Python.
- لقد تم إهمال JString. لإنشاء سلسلة Java، أو للتحقق من أن الكائن من نوع سلسلة Java، استخدم java.lang.String.
- تم تحديث أساليب Repr في فئات Java.
- java.util.List ينفذ عقود المجموعات.abc.Sequence وcollections.abc.MutableSequence.
- java.util.Collection ينفذ العقد الخاص بـ Collections.abc.Collection.
- فئات Java خاصة وسوف تؤدي إلى خطأ TypeError عند تمديدها من Python.
- تعامل مع Control-C بعناية. تتعطل الإصدارات السابقة عندما تقوم Java بمعالجة إشارة Control-C لأنها ستنهي Java أثناء المكالمة. سوف يقوم JPype الآن بطرح InterruptedException عند العودة من Java. لن يتخلص Control-C من إجراءات Java الكبيرة كما هو مطبق حاليًا، حيث لا تحتوي Java على أداة خاصة لهذا الغرض.
بعد ذلك، تم إنشاء الإصدار التصحيحي 1.0.1، والذي أضاف تغييرات للتغلب على مشكلات إصدار Python 3.8.4. لقد غيرت بايثون المنطق فيما يتعلق باستخدام "__setattr__" لـ "الكائن" و"النوع"، مما يمنع استخدامه لتعديل الفئات المشتقة. تم أيضًا تفويض التحقق من الأخطاء من الطريقة "__setattr__"، لذلك يجب تحديث أنواع الاستثناءات في بعض اختبارات الملاءمة وفقًا لذلك.
المصدر: opennet.ru