Ի՞նչ են Generics-ը և ինչու են օգտագործվում:
sobes.tech AI
Պատասխան AI-ից
Ջեներիկները (ընդհանուր տիպեր) — դա մեխանիզմ է ծրագրավորման լեզուներում, որը թույլ է տալիս ստեղծել դասեր, ինտերֆեյսներ և մեթոդներ, որոնք աշխատում են տարբեր տիպերի տվյալների հետ՝ չգիտելով կոնկրետ տվյալ տիպը նախապես:
Օգտագործվում են՝
-
Տիպային անվտանգության բարձրացում (Type Safety): Կոմպիլյատորը ստուգում է տվյալների տիպերը կոմպիլացիայի ժամանակ, կանխելով այն սխալները, որոնք կարող են հայտնվել միայն գործարկման ժամանակ (Runtime Errors):
// Օրինակ առանց Ջեներիկների - հնարավոր սխալ տվյալների հանման ժամանակ List list = new ArrayList(); list.add("string"); list.add(123); // Կարող է ավելացնել ցանկացած տիպ String s = (String) list.get(1); // Սխալ ClassCastException գործարկման ժամանակ -
Կոդի բազմակի օգտագործում (Code Reusability): Միևնույն կոդը կարող է աշխատել տարբեր տիպերի տվյալների հետ՝ առանց անհրաժեշտության գրել առանձին տարբերակներ յուրաքանչյուր տիպի համար:
// Ջեներիկներով՝ անվտանգ օգտագործում List<String> list = new ArrayList<>(); // Տիպը նշված է՝ String list.add("string"); // list.add(123); // Կոմպիլյատորը ցույց կտա սխալ՝ չի կարելի ավելացնել int String s = list.get(0); // Չի պահանջվում տիպի վերածում -
Կոդի ընթերցելիության բարելավում: Տիպերի հստակ նշումը օգնում է հասկանալ, թե ինչ տվյալների հետ է աշխատում կոդը:
-
Ավտոմատիզացիա և կատարողականության բարելավում: Որոշ լեզուներում (օրինակ՝ C#) Ջեներիկները կարող են ապահովել ավելի լավ կատարողականություն՝ համեմատած բազային տիպերի օգտագործման հետ (օրինակ՝
Object), քանի որ անհրաժեշտ չէ բաքսինգ/ռեբաքսինգ:
Օրինակ՝ տվյալների ստանդարտ հավաքածուները (ցուցակներ, հավաքածուներ, քարտեր) մեծ մասամբ օգտագործում են Ջեներիկներ՝ ապահովելով անվտանգություն և հարմարավետություն:
| Без Generics | С Generics |
|---|---|
Աշխատում է Object տիպի հետ |
Աշխատում է կոնկրետ տիպերի հետ |
| Պահանջում է տիպերի հստակ վերածում | Չի պահանջում վերածում տիպերի |
| Տիպային սխալները հայտնաբերվում են գործարկման ժամանակ | Տիպային սխալները հայտնաբերվում են կոմպիլյացիայի ժամանակ |
| Ավելի քիչ ընթերցվող կոդ | Ավելի ընթերցվող կոդ |