Կարո՞ղ են երկու դասեր ունենալ նույն serialVersionUID:
Կարո՞ղ են երկու դասեր ունենալ նույն serialVersionUID:

Video: Կարո՞ղ են երկու դասեր ունենալ նույն serialVersionUID:

Video: Կարո՞ղ են երկու դասեր ունենալ նույն serialVersionUID:
Video: 8 բան, որ տղամարդիկ անում են ՄԻԱՅՆ այն կնոջ հետ, ում սիրում են 2024, Ապրիլ
Anonim

Այո, դա հնարավոր է երկու տարբեր դասերը կարող են ունենալ որ նույն սերիալըVersionUID արժեքը։ Բայց նախընտրեք յուրաքանչյուրի համար օգտագործել եզակի մեկը դաս . Որպես արժեք օգտագործեք նաև 8-ից 10 նիշով ավելի երկար մեկը, քան 1-ը:

Հետևաբար, ի՞նչ է serialVersionUID-ը:

Պարզ ասած, որ serialVersionUID Serializable դասերի եզակի նույնացուցիչ է: Սա օգտագործվում է օբյեկտի ապասերիալացման ժամանակ՝ ապահովելու, որ բեռնված դասը համատեղելի է սերիականացված օբյեկտի հետ:

Նմանապես, ո՞րն է serialVersionUID 1l-ի օգտագործումը: Այն serialVersionUID Serializable դասի ունիվերսալ տարբերակի նույնացուցիչ է: Ապասերիալացում օգտագործում է այս թիվը ապահովելու համար, որ բեռնված դասը ճշգրտորեն համապատասխանում է սերիականացված օբյեկտին: Եթե համընկնում չգտնվի, ապա գցվում է InvalidClassException:

Նմանապես, հարցնում են, արդյոք սերիալայինVersionUID-ն անհրաժեշտ է:

լռելյայն serialVersionUID հաշվարկը խիստ զգայուն է դասի մանրամասների նկատմամբ, որոնք կարող են տարբեր լինել՝ կախված կոմպիլյատորների իրականացումից, և կարող է այդպիսով առաջանում են անսպասելի InvalidClassException-ներ ապասերիալիզացիայի ժամանակ: Հետեւաբար, դուք պետք է հայտարարեք serialVersionUID քանի որ դա մեզ ավելի շատ վերահսկողություն է տալիս:

Ո՞րն է serialVersionUID-ի դերը սերիալացման գործընթացում:

ընթացքում սերիականացում , java runtime-ը յուրաքանչյուրի հետ կապում է տարբերակի համարը սերիականացվող դաս. Այս համարը զանգահարեց serialVersionUID , որն օգտագործվում է ապասերիալիզացիայի ժամանակ՝ ստուգելու համար, որ ուղարկողն ու ստացողը a սերիականացված օբյեկտն ունի բեռնված դասեր այդ օբյեկտի համար, որոնք համատեղելի են սերիականացում.

Խորհուրդ ենք տալիս: