Suurimmat muutokset:
- JChar on tuettu palautustyyppinä. Yhteensopivuuden vuoksi JChar perii "str":n ja toteuttaa implisiittisen muunnoksen "int":ksi. Siksi se läpäisee sopimusten tarkastukset. Mutta tämä tarkoittaa, että sitä ei enää pidetä numeerisena tyyppinä Pythonissa, ja siksi isinstance(c, int) laskee arvoksi False, mikä on yhdenmukainen Java-tyypin muunnossääntöjen kanssa.
- On otettu käyttöön operaattori, joka lähettää Java-tyypin, Type@obj (@ on Python-operaattori sisätuotteelle; Javalla ei ole sellaista).
- Lisätty merkintä Java-taulukoiden luomiseen. Kirjoita [s1][s2][s3] kiinteäkokoisille taulukoille, kirjoita [:][:][:] myöhemmin luoville taulukoille.
- @FunctionalInterface antaa sinun luoda Java-funktioita Python-objekteista komennolla __call__.
- Poistettu vanhentunut JIterator, JExceptionin käyttö tehtaana, get_default_jvm_path ja jpype.reflect.
- Oletusarvoisesti Java-merkkijonoja ei muunneta Python-merkkijonoiksi.
- Python on poistanut käytöstä "__int__", joten implisiittiset heitot kokonaisluku- ja liukulukutyyppien välillä aiheuttavat TypeError-virheen.
- JExceptionin käyttö on vanhentunut. Jos haluat kiinnittää kaikki poikkeukset tai tarkistaa, että objekti on Java-poikkeustyyppi, käytä java.lang.Throwablea.
- Java-poikkeuksien peräkkäiset syyt näkyvät nyt Python-pinokehydessä.
- JString on vanhentunut. Voit luoda Java-merkkijonon tai tarkistaa, että objekti on Java-merkkijonotyyppiä käyttämällä java.lang.String.
- Repr-menetelmiä on päivitetty Java-luokissa.
- java.util.List suorittaa sopimukset collections.abc.Sequence ja collections.abc.MutableSequence.
- java.util.Collection toteuttaa collections.abc.Collection-sopimuksen.
- Java-luokat ovat yksityisiä ja aiheuttavat TypeErrorin, kun niitä laajennetaan Pythonista.
- Käsittele Control-C:tä varovasti. Aiemmat versiot kaatuvat, kun Java käsittelee Control-C-signaalia, koska ne lopettavat Javan puhelun aikana. JPype antaa nyt InterruptedExceptionin palatessaan Javasta. Control-C ei hävitä suuria Java-proseduureja tällä hetkellä toteutettuna, koska Javalla ei ole tähän erityistä työkalua.
Seuraavaksi luotiin korjaava julkaisu 1.0.1, joka lisäsi muutoksia Python 3.8.4 -julkaisun ongelmien kiertämiseen. Python on muuttanut logiikkaa koskien "__setattr__":n käyttöä "objektille" ja "tyypille", mikä estää sen käyttämisen johdettujen luokkien muokkaamiseen. Virheentarkistus on myös delegoitu "__setattr__"-menetelmästä, joten joidenkin riittävyystarkistusten poikkeustyypit tulisi päivittää vastaavasti.
Lähde: opennet.ru