Glavne promjene:
- JChar je podržan kao tip povratka. Radi kompatibilnosti, JChar nasljeđuje od "str" i implementira implicitnu konverziju u "int". Stoga prolazi provjere u ugovorima. Ali to znači da se više ne smatra numeričkim tipom u Pythonu i stoga isinstance(c, int) procjenjuje na False, što je u skladu s pravilima konverzije Java tipa.
- Uveden je operator za pretvaranje Java tipa, Type@obj (@ je Python operator za unutrašnji proizvod; Java ga nema).
- Dodata notacija za kreiranje Java nizova. Upišite [s1][s2][s3] za nizove fiksne veličine, Type[:][:][:] za nizove koji će biti kreirani kasnije.
- @FunctionalInterface vam omogućava da kreirate Java funktore od Python objekata pomoću __call__.
- Uklonjen je zastarjeli JIterator, korištenje JExceptiona kao fabrike, get_default_jvm_path i jpype.reflect.
- Podrazumevano, Java stringovi se ne konvertuju u Python stringove.
- Python je zastario "__int__", tako da će implicitno prebacivanje između cjelobrojnih i tipova s pomičnim zarezom proizvesti TypeError.
- Upotreba JException je zastarjela. Da uhvatite sve iznimke ili provjerite da li je objekt tip Java izuzetka, koristite java.lang.Throwable.
- Kaskadni uzroci Java izuzetaka sada se odražavaju u okvirima Python steka.
- JString je zastario. Da biste kreirali Java string ili provjerili da li je objekt tipa Java string, koristite java.lang.String.
- Repr metode su ažurirane u Java klasama.
- java.util.List izvršava ugovore za collections.abc.Sequence i collections.abc.MutableSequence.
- java.util.Collection izvršava ugovor za collections.abc.Collection.
- Java klase su privatne i izbacit će TypeError kada se prošire iz Pythona.
- Pažljivo rukujte Control-C. Prethodne verzije padaju kada Java obradi Control-C signal jer će prekinuti Javu tokom poziva. JPype će sada izbaciti InterruptedException kada se vraća iz Jave. Control-C neće izbaciti velike Java procedure kakve su trenutno implementirane, pošto Java nema poseban alat za to.
Zatim je kreirano korektivno izdanje 1.0.1, koje je dodalo promjene za rješavanje problema s izdanjem Python 3.8.4. Python je promijenio logiku u vezi sa upotrebom "__setattr__" za "objekat" i "tip", sprječavajući da se koristi za modificiranje izvedenih klasa. Provjera grešaka je također delegirana iz metode "__setattr__", tako da tipove izuzetaka u nekim provjerama adekvatnosti treba ažurirati u skladu s tim.
izvor: opennet.ru