Nagy változások:
- A JChar visszatérési típusként támogatott. A kompatibilitás érdekében a JChar az "str"-ből örökli, és implicit konverziót hajt végre "int"-re. Ezért átmegy a szerződésekben szereplő ellenőrzéseken. Ez azonban azt jelenti, hogy a Pythonban már nem tekintik numerikus típusnak, ezért az isinstance(c, int) False értékre értékeli ki, ami összhangban van a Java típusú konverziós szabályokkal.
- Bevezettek egy Java-típust, a Type@obj-t (a @ egy Python-operátor a belső termékhez, a Java-nak nincs ilyen).
- Hozzáadott jelölés a Java tömbök létrehozásához. Rögzített méretű tömbökhöz írja be az [s1][s2][s3], a később létrehozandó tömbök esetén írja be a [:][:][:] parancsot.
- A @FunctionalInterface lehetővé teszi Java funktorok létrehozását Python objektumokból a __call__ segítségével.
- Eltávolítottuk az elavult JIteratort, a JException használata gyárként, get_default_jvm_path és jpype.reflect.
- Alapértelmezés szerint a Java karakterláncok nem konvertálódnak Python karakterláncokká.
- A Python elavult "__int__", így az egész számok és a lebegőpontos típusok közötti implicit öntések TypeError-t eredményeznek.
- A JException használata elavult. Az összes kivétel rögzítéséhez vagy annak ellenőrzéséhez, hogy egy objektum Java kivételtípus-e, használja a java.lang.Throwable parancsot.
- A Java-kivételek lépcsőzetes okai mostantól a Python veremkeretekben is megjelennek.
- A JString elavult. Java karakterlánc létrehozásához vagy annak ellenőrzéséhez, hogy egy objektum Java karakterlánc típusú-e, használja a java.lang.String parancsot.
- A Repr metódusok frissítésre kerültek a Java osztályokban.
- A java.util.List a collections.abc.Sequence és collections.abc.MutableSequence szerződéseket hajtja végre.
- A java.util.Collection végrehajtja a gyűjteményekre vonatkozó szerződést.abc.Collection.
- A Java osztályok privátak, és TypeError-t dobnak ki, ha Pythonból bővítik ki.
- Óvatosan kezelje a Control-C-t. A korábbi verziók összeomlanak, amikor a Java egy Control-C jelet dolgoz fel, mert a hívás során leállítják a Java-t. A JPype mostantól InterruptedException-t fog dobni, amikor visszatér a Java-ból. A Control-C nem dobja ki a nagy Java-eljárásokat, ahogyan jelenleg implementálva van, mivel a Java-nak nincs erre speciális eszköze.
Ezt követően létrehoztak egy javító 1.0.1-es kiadást, amely változtatásokat adott a Python 3.8.4-es kiadással kapcsolatos problémák megoldására. A Python megváltoztatta a „__setattr__” „object” és „type” kifejezések használatának logikáját, így megakadályozta, hogy azt a származtatott osztályok módosítására használják. A hibaellenőrzés a „__setattr__” metódusból is át lett delegálva, ezért egyes megfelelőségi ellenőrzéseknél a kivételtípusokat ennek megfelelően frissíteni kell.
Forrás: opennet.ru