Grote veranderingen:
- JChar wordt ondersteund als retourtype. Voor compatibiliteit erft JChar van "str" en implementeert een impliciete conversie naar "int". Daarom passeert het controles in contracten. Maar dit betekent dat het in Python niet langer als een numeriek type wordt beschouwd en daarom evalueert isinstance(c, int) False, wat consistent is met de conversieregels voor het Java-type.
- Er is een operator geïntroduceerd om een Java-type te casten, Type@obj (@ is een Python-operator voor inproduct; Java heeft er geen).
- Notatie toegevoegd voor het maken van Java-arrays. Type[s1][s2][s3] voor arrays met een vaste grootte, Type[:][:][:] voor arrays die later worden gemaakt.
- Met @FunctionalInterface kunt u Java-functors maken van Python-objecten met __call__.
- Verouderde JIterator verwijderd, gebruik van JException als fabriek, get_default_jvm_path en jpype.reflect.
- Standaard worden Java-tekenreeksen niet geconverteerd naar Python-tekenreeksen.
- Python heeft "__int__" verouderd, dus impliciete casts tussen integer- en floating-point-typen zullen een TypeError opleveren.
- Het gebruik van JException is verouderd. Om alle uitzonderingen op te vangen, of om te controleren of een object een Java-uitzonderingstype is, gebruikt u java.lang.Throwable.
- Trapsgewijze oorzaken van Java-uitzonderingen worden nu weerspiegeld in Python-stackframes.
- JString is verouderd. Om een Java-string te maken, of om te controleren of een object van het type Java-string is, gebruik je java.lang.String.
- Repr-methoden zijn bijgewerkt in Java-klassen.
- java.util.List voert contracten uit voor collections.abc.Sequence en collections.abc.MutableSequence.
- java.util.Collection voert het contract uit voor collections.abc.Collection.
- Java-klassen zijn privé en genereren TypeError wanneer ze worden uitgebreid vanuit Python.
- Ga voorzichtig om met de Control-C. Eerdere versies crashen wanneer Java een Control-C-signaal verwerkt, omdat ze Java tijdens de oproep beëindigen. JPype zal nu een InterruptedException genereren bij terugkeer uit Java. Control-C zal de grote Java-procedures zoals die momenteel worden geïmplementeerd niet weggooien, aangezien Java hiervoor geen speciaal hulpmiddel heeft.
Vervolgens werd een corrigerende release 1.0.1 gemaakt, waarin wijzigingen werden toegevoegd om problemen met de Python 3.8.4-release te omzeilen. Python heeft de logica veranderd met betrekking tot het gebruik van "__setattr__" voor "object" en "type", waardoor wordt voorkomen dat het wordt gebruikt om afgeleide klassen te wijzigen. Foutcontrole is ook gedelegeerd vanuit de "__setattr__"-methode, dus de uitzonderingstypen in sommige adequaatheidscontroles moeten dienovereenkomstig worden bijgewerkt.
Bron: opennet.ru