Hovedendringer:
- JChar støttes som en returtype. For kompatibilitet er JChar avledet fra "str" og implementerer en implisitt konvertering til "int". Derfor passerer den kontroller i kontrakter. Men dette betyr at den ikke lenger regnes som en numerisk type i Python, og derfor evalueres isinstance(c, int) til False, som er i samsvar med Javas typekonverteringsregler.
- En operatør har blitt introdusert for å støpe Java-typen Type@obj (@ - dette er en Python-operator for det indre produktet, den finnes ikke i Java).
- Lagt til notasjon for å lage Java-matriser. Type[s1][s2][s3] for matriser med faste størrelser, Type[:][:][:] for matriser som skal opprettes senere.
- @FunctionalInterface lar deg lage Java-funksjoner fra Python-objekter med __call__.
- Fjernet avviklet JIterator, JException fabrikkbruk, get_default_jvm_path og jpype.reflect.
- Som standard konverteres ikke Java-strenger til Python-strenger.
- Python har avviklet "__int__", så implisitte kast mellom heltalls- og flytetyper vil produsere en TypeError.
- Utdatert bruk av JException. For å fange opp alle unntak, eller for å sjekke at et objekt er en Java-unntakstype, følger java.lang.Throwable.
- Cascading Java-unntaksårsaker gjenspeiles nå i Python-stabelrammer.
- Utdatert bruk av JString. For å lage en Java-streng, eller sjekke at et objekt er av typen Java-streng, bruk java.lang.String.
- Repr-metoder er oppdatert i Java-klasser.
- java.util.List oppfyller kontraktene for collections.abc.Sequence og collections.abc.MutableSequence.
- java.util.Collection oppfyller kontrakten til for collections.abc.Collection.
- Java-klasser er private og vil gi en TypeError når de utvides fra Python.
- Håndter Control-C pent. Tidligere versjoner krasjer når Java behandler et Control-C-signal, da de vil avslutte Java under samtalen. JPype vil nå kaste en InterruptedException når den kommer tilbake fra Java. Control-C vil ikke sparke ut store Java-rutiner slik den gjør for øyeblikket, siden Java ikke har en spesiell funksjon for det.
En oppdateringsutgivelse av 1.0.1 ble deretter dannet, som la til endringer for å omgå problemer med utgivelsen av Python 3.8.4. Python endret logikken angående bruken av "__setattr__" for "objekt" og "type", og forhindret at den ble brukt til å endre avledede klasser. Dessuten har feilkontroll blitt delegert fra "__setattr__"-metoden, så unntakstypene i enkelte tilregnelighetskontroller må oppdateres tilsvarende.
Kilde: opennet.ru