Основні зміни:
- JChar підтримується як тип, що повертається. Для сумісності JChar успадкований від str і реалізує неявне перетворення в int. Тому він проходить перевірки у контрактах. Але це означає, що він більше не вважається числовим типом у Python і тому isinstance(c, int) набуває значення False, що узгоджується з правилами перетворення типів Java.
- Введений оператор для приведення Java-типу Type@obj (@ — це оператор Python для внутрішнього твору, Java його немає).
- Додано нотацію для створення масивів Java. Type[s1][s2][s3] для масивів фіксованих розмірів, Type[:][:][:] для масивів, які будуть створені пізніше.
- @FunctionalInterface дозволяє створювати Java-функції з Python-об'єктів з __call__.
- Видалені застарілі JIterator, використання JException як фабрики, get_default_jvm_path та jpype.reflect.
- За промовчанням не відбувається конвертація Java-рядків у рядки Python.
- Python оголосив нерекомендованим «__int__», тому неявні приведення між цілими і з плаваючою точкою типами будуть виробляти TypeError.
- Оголошено застарілим використання JException. Щоб зловити всі винятки, або перевірити, чи об'єкт є типом виключення Java, слід java.lang.Throwable.
- Каскадні причини Java-виключень тепер відображаються у кадрах стека Python.
- Оголошено застарілим використання JString. Щоб створити Java-рядок, або перевірити, чи об'єкт має тип Java-рядка, використовуйте java.lang.String.
- У Java-класах оновлено repr-методи.
- java.util.List виконує контракти для collections.abc.Sequence та collections.abc.MutableSequence.
- java.util.Collection виконує контракт для collections.abc.Collection.
- Java-класи закриті і будуть кидати TypeError при розширенні з Python.
- Обробка Control-C акуратна. Попередні версії падають, коли Java обробляє Control-C сигнал, оскільки вони завершать Java під час виклику. Тепер JPype створить InterruptedException, коли повертатиметься з Java. Control-C не викине з великих Java-процедур, як зараз реалізовано, тому що Java не має спеціального засобу для цього.
Слідом сформовано коригуючий випуск 1.0.1, в якому додано зміни для обходу проблем з релізом Python 3.8.4. Python змінив логіку щодо використання "__setattr__" для "object" і "type", запобігаючи її використанню для зміни породжених класів. Ще перевірка на помилки була делегована з методу __setattr__, тому типи винятків у деяких перевірках на адекватність повинні бути оновлені відповідно.
Джерело: opennet.ru