Middle
რა არის Generics და როგორ გამოიყენება პროგრამირებაში?
sobes.tech AI
პასუხი AI-სგან
ජෙනරිකස් (සමාන්යාකෘති) — විවිධ දත්ත වර්ග සමඟ වැඩ කිරීමට හැකි කේතයක් ලිවිය හැකි හැකියාවකි, එය සංයෝජනයේදී වර්ග ආරක්ෂාව රඳා පවතී. එය පන්තියන්, අතුරුමුහුණත් සහ ක්රම ලිවිය හැකි අතර, එහි දත්ත වර්ගය භාවිතා කිරීමේදී තීරණය වේ, එනම් එහි ප්රකාශනයේ නොවේ.
ජෙනරිකස් භාවිතා කිරීමේ වාසි:
- වර්ග ආරක්ෂාව: සංයෝජකයා වර්ග අනුකූලතාවය පරීක්ෂා කරයි, එමඟින් ක්රියාත්මක වේලාවේ වර්ග අසමතුලිතතා සම්බන්ධ දෝෂ වලින් වැළකී සිටිය හැක.
- කේතය නැවත භාවිතා කිරීම: එකම කේතයක් විවිධ වර්ග සමඟ වැඩ කිරීමට භාවිතා කළ හැක, ලොජික් නැවත ලිවිය නොහැක.
- කේතයේ කියවීමේ හැකියාව:
Objectවෙනුවට නියමිත වර්ග භාවිතා කිරීම කේතයේ පැහැදිලිභාවය වැඩි කරයි. - කාර්යක්ෂමතාව: කිසිඳු භාෂාවක (උදාහරණයක් ලෙස Java) ජෙනරිකස් වර්ග අතුරුසන් කිරීම (type erasure) සමඟ ක්රියාත්මක වන නමුත්, වෙනත් භාෂා (උදාහරණයක් ලෙස C#, C++) තුළ, වර්ග තොරතුරු ක්රියාත්මක වේලාවේ තබා ඇත.
උදාහරණ:
- සංග්රහ: ඕනෑම වර්ගයක අංග රඳවා ගත හැකි සමාන්යා ලයිස්තු, සමුහ, සිතියම් නිර්මාණය.
// පේළි ලයිස්තුවක් නිර්මාණය කිරීම List<String> stringList = new ArrayList<>(); stringList.add("හෙලෝ"); // ගණනක් එකතු කිරීමට උත්සාහ කළහොත් දෝෂයක් // stringList.add(123); - කර්මාන්තශාලා: විවිධ වර්ගවල වස්තු නිෂ්පාදනය කළ හැකි කර්මාන්තශාලා නිර්මාණය.
- ක්රම: සාමාන්යා වර්ග සමඟ වැඩ කරන ක්රම ලිවීම.
// සාමාන්යා මාරු කිරීමේ ක්රමය public static void Swap<T>(ref T a, ref T b) { T temp = a; a = b; b = temp; } - පන්තියන්: තැන්පත් කිරීම හෝ සැකසීම සඳහා සාමාන්යා පන්තියන් නිර්මාණය.
// සාමාන්යා බොක්ස් පන්තිය class Box<T> { private T content; public void setContent(T content) { this.content = content; } public T getContent() { return content; } }
Object වර්ගය භාවිතා කිරීමේ සාපේක්ෂව (Java):
| විශේෂාංගය | ජෙනරිකස් | Object වර්ගය |
|---|---|---|
| වර්ග ආරක්ෂාව | සංයෝජනයේදී | ක්රියාත්මක වේලාවේ (කැස්ටින් මඟින්) |
| කැස්ටින් අවශ්යද | නැහැ | ඔව් |
| දෝෂ | සංයෝජනයේදී හඳුනාගත හැක | ක්රියාත්මක වේලාවේ (ClassCastException) |
| කියවීමේ පහසුව | ඉහළ | පහළ (කොහොමද, කවර වර්ගයන් අපේක්ෂා කරන්නේ කියා පැහැදිලි නැහැ) |
සමස්තයෙන්, ජෙනරිකස් ශක්තිමත් මෙවලමක් වන අතර, විශ්වාසදායක, කියවිය හැකි සහ නැවත භාවිතා කළ හැකි කේත ලිවිය හැක.