Junior — Middle
რა უშლის ხელს ბაზის ტიპების გამოყენებას გენერიკების პარამეტრებში?
sobes.tech AI
პასუხი AI-სგან
Java-ში, გენერიკები (Generics) განხორციელებულია ტიპების წაშლის (type erasure) მეშვეობით, რაც ნიშნავს, რომ გენერიკ პარამეტრების ტიპების შესახებ ინფორმაცია შესრულების დროს ხელმისაწვდომი არ არის.
ამიტომ, primitive ტიპებს (int, boolean და ა.შ.) ვერ გამოიყენებთ გენერიკ პარამეტრებად, რადგან ისინი ობიექტები არ არიან და კლასის სახით წარმოდგენა შეუძლებელია.
მაგალითად, არასწორია დაწერა:
List<int> numbers; // შეცდომა
გადანაცვლებლად, უნდა გამოიყენოთ ობლოკები:
List<Integer> numbers; // სწორი
ეს იმიტომ, რომ გენერიკები მუშაობს მხოლოდ ობიექტის ტიპებთან, ხოლო primitive ტიპები ობიექტები არ არიან.