Hlavné zmeny:
- JChar je podporovaný ako návratový typ. Kvôli kompatibilite JChar dedí z "str" a implementuje implicitnú konverziu na "int". Preto prechádza kontrolami v zmluvách. To však znamená, že sa už v Pythone nepovažuje za číselný typ, a preto sa isinstance(c, int) vyhodnotí ako False, čo je v súlade s pravidlami konverzie typu Java.
- Bol zavedený operátor na pretypovanie typu Java, Type@obj (@ je operátor Pythonu pre vnútorný produkt; Java ho nemá).
- Pridaný zápis pre vytváranie polí Java. Typ[s1][s2][s3] pre polia s pevnou veľkosťou, Typ[:][:][:] pre polia, ktoré sa vytvoria neskôr.
- @FunctionalInterface vám umožňuje vytvárať Java funktory z objektov Pythonu pomocou __call__.
- Odstránený zastaraný JIterator, použitie JException ako továrne, get_default_jvm_path a jpype.reflect.
- V predvolenom nastavení sa reťazce Java nekonvertujú na reťazce Pythonu.
- Python zastaral "__int__", takže implicitné pretypovanie medzi celočíselnými typmi a typmi s pohyblivou rádovou čiarkou vytvorí TypeError.
- Použitie JException bolo zastarané. Ak chcete zachytiť všetky výnimky alebo skontrolovať, či je objekt typu výnimky Java, použite java.lang.Throwable.
- Kaskádové príčiny výnimiek Java sa teraz odrážajú v rámcoch zásobníka Pythonu.
- JString je zastaraný. Ak chcete vytvoriť reťazec Java alebo skontrolovať, či je objekt typu reťazec Java, použite java.lang.String.
- Metódy Repr boli aktualizované v triedach Java.
- java.util.List vykonáva zmluvy pre kolekcie.abc.Sequence a kolekcie.abc.MutableSequence.
- java.util.Collection vykoná zmluvu o kolekciách.abc.Collection.
- Triedy Java sú súkromné a pri rozšírení z Pythonu vyvolajú TypeError.
- S Control-C manipulujte opatrne. Predchádzajúce verzie zlyhávajú, keď Java spracuje signál Control-C, pretože počas hovoru ukončia Java. JPype teraz pri návrate z Java vyvolá InterruptedException. Control-C nevyhodí veľké Java procedúry, ako sú v súčasnosti implementované, pretože Java na to nemá špeciálny nástroj.
Ďalej bolo vytvorené opravné vydanie 1.0.1, ktoré pridalo zmeny na obídenie problémov s vydaním Pythonu 3.8.4. Python zmenil logiku týkajúcu sa použitia „__setattr__“ pre „objekt“ a „typ“, čím zabránil jeho použitiu na úpravu odvodených tried. Kontrola chýb bola tiež delegovaná z metódy "__setattr__", takže typy výnimiek v niektorých kontrolách primeranosti by sa mali zodpovedajúcim spôsobom aktualizovať.
Zdroj: opennet.ru