Խոշոր փոփոխություններ.
- JChar-ն աջակցվում է որպես վերադարձի տեսակ: Համատեղելիության համար JChar-ը ժառանգում է «str»-ից և իրականացնում է անուղղակի փոխակերպում «int»-ի: Ուստի պայմանագրերում ստուգումներ է անցնում։ Բայց սա նշանակում է, որ այն այլևս չի համարվում թվային տեսակ Python-ում, և հետևաբար, ininstance(c, int)-ը գնահատվում է False-ի, ինչը համահունչ է Java տիպի փոխակերպման կանոններին։
- Ներդրվել է օպերատոր՝ «Type@obj»-ի տիպը փոխանցելու համար (@-ը Python-ի օպերատոր է ներքին արտադրանքի համար, Java-ն չունի):
- Ավելացվել է Java զանգվածներ ստեղծելու նշում: Մուտքագրեք [s1][s2][s3] ֆիքսված չափի զանգվածների համար, Type[:][:][:] զանգվածների համար, որոնք հետագայում կստեղծվեն:
- @FunctionalInterface-ը թույլ է տալիս Python-ի օբյեկտներից Java ֆունկցիոներներ ստեղծել __call__-ով:
- Հեռացվել է հնացած JIterator-ը, JException-ի օգտագործումը որպես գործարան, get_default_jvm_path և jpype.reflect:
- Լռելյայնորեն, Java տողերը չեն փոխարկվում Python տողերի:
- Python-ը հնացել է «__int__»-ը, այնպես որ անուղղակի հեռարձակումները ամբողջ թվերի և լողացող կետերի տիպերի միջև կառաջացնեն TypeError:
- JException-ի օգտագործումը հնացել է: Բոլոր բացառությունները բռնելու կամ ստուգելու համար, որ օբյեկտը Java բացառության տեսակ է, օգտագործեք java.lang.Throwable:
- Java-ի բացառությունների կասկադային պատճառներն այժմ արտացոլված են Python stack շրջանակներում:
- JString-ը հնացել է: Java տող ստեղծելու կամ ստուգելու համար, որ օբյեկտը Java string է, օգտագործեք java.lang.String:
- Repr մեթոդները թարմացվել են Java դասերում։
- java.util.List-ը կատարում է պայմանագրեր collections.abc.Sequence և collections.abc.MutableSequence-ի համար:
- java.util.Collection-ը կատարում է պայմանագիրը collections.abc.Collection-ի համար:
- Java-ի դասերը մասնավոր են և Python-ից երկարացնելու դեպքում կուղարկեն TypeError:
- Զգուշորեն կարգավորեք Control-C-ը: Նախորդ տարբերակները խափանում են, երբ Java-ն մշակում է Control-C ազդանշան, քանի որ դրանք կդադարեցնեն Java-ն զանգի ընթացքում: JPype-ն այժմ Java-ից վերադառնալիս կներկայացնի InterruptedException: Control-C-ն չի դուրս մղի Java-ի մեծ ընթացակարգերը, ինչպես ներկայումս իրականացվում է, քանի որ Java-ն դրա համար հատուկ գործիք չունի:
Այնուհետև ստեղծվեց ուղղիչ թողարկում 1.0.1, որն ավելացրեց փոփոխություններ Python 3.8.4 թողարկման հետ կապված խնդիրների լուծման համար: Python-ը փոխել է «__setattr__»-ի «օբյեկտի» և «տիպի» օգտագործման տրամաբանությունը՝ թույլ չտալով այն օգտագործել ածանցյալ դասերը փոփոխելու համար: Սխալների ստուգումը նույնպես պատվիրակվել է «__setattr__» մեթոդից, ուստի համապատասխանության որոշ ստուգումների բացառությունների տեսակները պետք է համապատասխանաբար թարմացվեն:
Source: opennet.ru