Asosiy o'zgarishlar:
- JChar qaytish turi sifatida qo'llab-quvvatlanadi. Moslik uchun JChar "str" ββdan meros oladi va "int" ga yashirin konvertatsiyani amalga oshiradi. Shuning uchun u shartnomalarda tekshiruvdan o'tadi. Lekin bu shuni anglatadiki, u endi Pythonda raqamli tur hisoblanmaydi va shuning uchun isinstance(c, int) False deb baholanadi, bu Java turini o'zgartirish qoidalariga mos keladi.
- Java turini translatsiya qilish uchun operator joriy etildi, Type@obj (@ - ichki mahsulot uchun Python operatori; Java-da bunday operator yo'q).
- Java massivlarini yaratish uchun belgi qo'shildi. Ruxsat etilgan oΚ»lchamli massivlar uchun [s1][s2][s3] yozing, keyinroq yaratiladigan massivlar uchun [:][:][:] yozing.
- @FunctionalInterface __call__ yordamida Python obyektlaridan Java funktorlarini yaratish imkonini beradi.
- Eskirgan JIterator olib tashlandi, JException-dan zavod sifatida foydalanish, get_default_jvm_path va jpype.reflect.
- Odatiy bo'lib, Java satrlari Python satrlariga aylantirilmaydi.
- Python "__int__" ni bekor qildi, shuning uchun butun va suzuvchi nuqta turlari o'rtasida yashirin translyatsiyalar TypeError hosil qiladi.
- JException dan foydalanish bekor qilindi. Barcha istisnolarni qo'lga olish yoki ob'ekt Java istisno turi ekanligini tekshirish uchun java.lang.Throwable dan foydalaning.
- Java istisnolarining kaskadli sabablari endi Python stek ramkalarida aks ettirilgan.
- JString eskirgan. Java satrini yaratish yoki obyektning Java string turiga tegishli ekanligini tekshirish uchun java.lang.String dan foydalaning.
- Repr usullari Java sinflarida yangilandi.
- java.util.List collections.abc.Sequence va collections.abc.MutableSequence uchun shartnomalarni bajaradi.
- java.util.Collection collections.abc.Collection shartnomasini bajaradi.
- Java sinflari shaxsiydir va Python-dan kengaytirilganda TypeError-ni chiqaradi.
- Control-C ni ehtiyotkorlik bilan ishlating. Avvalgi versiyalar Java Control-C signalini qayta ishlaganda ishdan chiqadi, chunki ular qo'ng'iroq paytida Java-ni to'xtatadi. JPype endi Java-dan qaytganida InterruptedException-ni chiqaradi. Control-C hozirda amalga oshirilayotgan katta Java protseduralarini chiqarib tashlamaydi, chunki Java-da buning uchun maxsus vosita yo'q.
Keyinchalik, Python 1.0.1 versiyasi bilan bog'liq muammolarni hal qilish uchun o'zgarishlar qo'shilgan tuzatuvchi reliz 3.8.4 yaratildi. Python "ob'ekt" va "turi" uchun "__setattr__" dan foydalanish mantiqini o'zgartirib, undan olingan sinflarni o'zgartirish uchun foydalanishga yo'l qo'ymaydi. Xatolarni tekshirish ham "__setattr__" usulidan berilgan, shuning uchun ba'zi muvofiqlik tekshiruvlarida istisno turlari mos ravishda yangilanishi kerak.
Manba: opennet.ru