Əsas dəyişikliklər:
- JChar qaytarma növü kimi dəstəklənir. Uyğunluq üçün JChar "str" sözündən götürülüb və "int"-ə gizli çevrilmə həyata keçirir. Buna görə də müqavilələrdə yoxlamalardan keçir. Lakin bu o deməkdir ki, o, artıq Python-da rəqəmsal tip hesab edilmir və buna görə də isinstance(c, int) Java-nın növə çevirmə qaydalarına uyğun gələn False kimi qiymətləndirir.
- Java tipli Type@obj (@ - bu daxili məhsul üçün Python operatorudur, Java-da mövcud deyil) operatoru təqdim edilmişdir.
- Java massivlərinin yaradılması üçün qeyd əlavə edildi. Sabit ölçülü massivlər üçün [s1][s2][s3] yazın, sonra yaradılacaq massivlər üçün Type[:][:][:] yazın.
- @FunctionalInterface __call__ ilə Python obyektlərindən Java funktorları yaratmağa imkan verir.
- Köhnəlmiş JIterator, JException zavod istifadəsi, get_default_jvm_path və jpype.reflect silindi.
- Varsayılan olaraq, Java sətirləri Python sətirlərinə çevrilmir.
- Python "__int__" köhnəlmişdir, buna görə də tam və float tipləri arasında gizli yayımlar TypeError yaradacaq.
- JException-ın köhnəlmiş istifadəsi. Bütün istisnaları tutmaq və ya obyektin Java istisna növü olduğunu yoxlamaq üçün java.lang.Throwable aşağıdakılardan ibarətdir.
- Cascading Java istisna səbəbləri indi Python stek çərçivələrində əks olunur.
- JString-in köhnəlmiş istifadəsi. Java sətri yaratmaq və ya obyektin Java sətir tipli olduğunu yoxlamaq üçün java.lang.String istifadə edin.
- Repr metodları Java siniflərində yeniləndi.
- java.util.List collections.abc.Sequence və collections.abc.MutableSequence üçün müqavilələri yerinə yetirir.
- java.util.Kolleksiya kolleksiyalar üçün müqaviləni yerinə yetirir.abc.Kolleksiya.
- Java sinifləri özəldir və Python-dan genişləndirildikdə TypeError atacaq.
- Control-C-ni səliqəli idarə edin. Əvvəlki versiyalar Java Control-C siqnalını emal edərkən qəzaya uğrayır, çünki zəng zamanı Java-nı dayandıracaqlar. JPype indi Java-dan qayıdanda InterruptedException atacaq. Control-C hazırda olduğu kimi böyük Java proqramlarını işə salmayacaq, çünki Java-nın bunun üçün xüsusi qurğusu yoxdur.
Daha sonra Python 1.0.1-ün buraxılışı ilə bağlı problemlərin aradan qaldırılması üçün dəyişikliklər əlavə edən 3.8.4 yamaq buraxılışı yaradıldı. Python, "obyekt" və "növ" üçün "__setattr__" istifadəsinə dair məntiqi dəyişərək, ondan törəmə sinifləri dəyişdirmək üçün istifadə olunmasının qarşısını aldı. Həmçinin, səhv yoxlaması "__setattr__" metodundan həvalə edilmişdir, ona görə də bəzi ağlı başında olma yoxlamalarında istisna növləri müvafiq olaraq yenilənməlidir.
Mənbə: opennet.ru