Კომპიუტერები, Პროგრამირების
Java Generics: აღწერა და მეთოდები
დასაწყისი გამოჩენა ჯავის ენაზე განიცადა ბევრი ცვლილებები, რომელიც უდავოდ დადებითი მომენტია, მისი ფუნქცია. ერთ-ერთი ასეთი მნიშვნელოვანი ცვლილებები დანერგვა Java Generic და დისკუსია. ეს ფუნქცია არა მარტო ენის უფრო მოქნილი და მრავალმხრივი, არამედ ბევრად უფრო უსაფრთხო თვალსაზრისით შემოტანა მონაცემთა ტიპები.
ფაქტია, რომ ადრე დანერგვა გენერიკების Java generic კოდი შეიძლება შეიქმნას, არა მხოლოდ იმ თვალსაზრისით ტიპის მითითება ობიექტი. ასეთი კავშირები შეიძლება დაეკისროს ნებისმიერი ობიექტი. ყოველივე ამის შემდეგ, კლასი Java არის დაფარული ობიექტის კლასი მემკვიდრეები. თუმცა, ეს მიდგომა არის პოტენციური წყარო ბევრი შეცდომები დაკავშირებული უსაფრთხოების სახის აშკარა კონვერტაციის ობიექტის ობიექტის სამიზნე ტიპის. გამოყენებისას დისკუსია ყველა ეჭვქვეშ ხორციელდება უპირობოდ და ავტომატურად, აღმოფხვრის კი პოტენციალი შეცდომები.
Java Generics: აღწერა და მაგალითად
განვიხილოთ მარტივი მაგალითია გამოყენების განზოგადების რეგულარული კლასების ფიგურა ქვემოთ. და შემდეგ გააგრძელოთ დეტალურ შესწავლას ყველა subtleties და ნიუანსი Java Generic.
ყურადღება მიაქციეთ, რომლითაც კლასის გამოცხადებას ხდება წყვილი. მას შემდეგ, რაც კლასის სახელით, ღია კუთხე ფრჩხილებში, სადაც მითითებულია, წერილში თ ეს არის ერთგვარი შემავსებელი, რომელიც შექმნის პროცესი მაგალითად ამ კლასში შეიცვლება კონკრეტული ტიპის. იგი ასე გამოიყურება: Pair
შენიშვნა: დაწყებული მერვე მობილური Java, სასურველი სამიზნე ტიპის როცა გამოცხადების მინიშნება კუთხე ფრჩხილებში მშენებელი შეიძლება დარჩა ცარიელი. ასე მაგალითად შეიძლება გადაწერილი, როგორც ზემოთ: წყვილი
როდესაც კლასი განაცხადა ისე, მაშინ მისი სხეული ნაცვლად კონკრეტული სახის სფეროებში, კავშირები, დააბრუნეს მიერ მეთოდები შეგიძლიათ გამოიყენოთ, რომ წერილში. მას შემდეგ, რაც T, როდესაც შექმნა კლასის ობიექტი შეიცვალა კონკრეტული ტიპის, პირველ და მეორე სფეროებში ამ შემთხვევაში იქნება ტიპის რიცხვი.
ლოგიკით არგუმენტები და firstItem secondItem, მოხსენიებული შესაბამისი მშენებელი, ასევე უნდა იყოს ტიპის რიცხვი და ქვეკლასით. თუ თქვენ ცდილობენ გადასცეს მონაცემები ტიპის, რომელიც განსხვავდება იმისგან, რაც იყო მითითებული, როდესაც შექმნა ობიექტი, შემდგენელი არ დაუშვას ეს შეცდომა. ამდენად, არგუმენტები მშენებელი როცა ობიექტი იქნება შემდეგნაირად: Pair
განზოგადებული რამდენიმე პარამეტრით კლასის ტიპის
განზოგადებული კლასების ასევე შეუძლია მრავალი პარამეტრების ტიპის, რომ მითითებული კუთხე ფრჩხილებში მძიმით. დიზაინი მიერ საქმის წყვილი კლასის წარმოდგენილი ქვემოთ.
როგორც ხედავთ, როდესაც თქვენ შექმნათ მაგალითად ამ კლასის კუთხე ფრჩხილებში მითითებული უნდა იყოს იგივე რაოდენობის სახის პარამეტრების. თუ თქვენ იცნობს ამ ტიპის მონაცემთა სტრუქტურის, როგორც Map, თქვენ ხედავთ, რომ იგი იყენებს ზუსტად იგივე პრინციპი. არსებობს, პირველი არგუმენტი განსაზღვრავს ტიპის გასაღები, და მეორე - ტიპის ღირებულება. აღსანიშნავია, რომ სახის გადამდები როცა ობიექტი არგუმენტები შეიძლება გადახურვა. მაგალითად, შემდეგ ad წყვილი კლასის მაგალითად აბსოლუტურად სწორი: Pair
ზოგიერთი თავისებურება დისკუსია
სანამ შემდგომი, უნდა აღინიშნოს, რომ ჯავის შემდგენელი არ ქმნის სხვადასხვა ვერსიებს კლასის წყვილი. ფაქტობრივად, შედგენის პროცესს განზოგადებული ტიპის ყველა ინფორმაცია ამოღებულია. ამის ნაცვლად, თქვენ, რათა შესაბამისი სახის, შექმნა სპეციალური ვერსია წყვილი კლასში. თუმცა, პროგრამა ჯერ კიდევ არსებობს მხოლოდ generic ვერსია კლასში. ამ პროცესს ეწოდება ჯავის Generic დასუფთავების ტიპის.
შენიშვნა მნიშვნელოვანი. ბმულები სხვადასხვა ვერსიები იგივე java generic კლასის ვერ აღვნიშნო, რომ ერთი და იგივე ობიექტი. რომ არის, დავუშვათ, გვაქვს ორი ბმულები: წყვილი
შეზღუდვა generic კატეგორიები
მნიშვნელოვანია, რომ იცით, რომ დისკუსია შეიძლება გამოყენებულ იქნეს მხოლოდ მითითებას სახის, რომელიც უნდა გაიაროს პარამეტრების generic კლასის java არგუმენტი უნდა იყოს კლასის ტიპის. ეს მარტივი სახის, როგორიცაა, მაგალითად, ორმაგი ან ხანგრძლივი, არ შეიძლება გადაეცეს. სხვა სიტყვებით, შემდეგ ხაზი წყვილი კლასის გამოცხადებას არ არის დაშვებული: Pair
კიდევ ერთი სერიოზული შეზღუდვა არის უუნარობა შექმნა ინსტანციის პარამეტრი ტიპის. მაგალითად, შემდეგ ხაზი გამოიწვევს კოლექცია შეცდომა: T პირველი = new T (). ეს, ცხადია, იმიტომ, რომ თქვენ არ იცით, წინასწარ თუ არგუმენტი გავიდა სრული კლასის ან აბსტრაქტული, ან თუნდაც ინტერფეისი. იგივე ეხება შესაქმნელად მასივები.
შეზღუდული სახის
ხშირად არსებობს სიტუაციები, როდესაც აუცილებელია ზღუდავს სია ტიპის, რომელიც შეიძლება მიღებულ, როგორც არგუმენტი Java generic კლასის. დავუშვათ, რომ ჩვენს კლასში წყვილი ჩვენ გვინდა, რომ encapsulate მხოლოდ რიცხვითი ღირებულებებს შემდგომი მათემატიკური ოპერაციების მათ. ამისათვის ჩვენ უნდა განსაზღვროს ზედა ზღვარი პარამეტრი ტიპის. იგი მიხვდა საშუალებით სუპერკლასმა განცხადებები მემკვიდრეობით ყველა არგუმენტები გავიდა კუთხე ფრჩხილებში. ეს გამოიყურება შემდეგნაირად: კლასის წყვილი
ეს არის საერთო მიღება. ასეთი შეზღუდვები ხშირად გამოიყენება, რათა უზრუნველყოს თავსებადობა ტიპის პარამეტრების ერთი და იმავე კლასში. ვნახოთ, ჩვენი კლასი წყვილი: კლასის წყვილი
შეზღუდვის "ქვედა" არის ზუსტად იგივე გზა, არამედ სიტყვა ვრცელდება მართლწერის სიტყვა super. რომელიც კლასიფიცირდება კლასის წყვილი
Generic Java მეთოდები და მშენებლები
ჯავაში, დისკუსია შეიძლება გამოყენებულ იქნას არა მხოლოდ კლასების, არამედ მეთოდები. მაგალითად, generic მეთოდით შეიძლება გამოცხადდეს რეგულარული საკლასო.
როგორც ჩანს, ეს მაჩვენებელი ზემოთ, რეკლამა განზოგადებული მეთოდი არ არის დიდი გარიგება. საკმარისი ადრე დაბრუნების ტიპის მეთოდი იმისათვის, რომ კუთხე ფრჩხილებში და მიუთითოთ ტიპის პარამეტრების მათ.
თუ ყველაფერი კეთდება მსგავსად მშენებელი:
კუთხოვანი ფრჩხილები ამ შემთხვევაში დააყენა ადრე სახელი დიზაინერი, რადგან მას არ აქვს დაბრუნებული მნიშვნელობა. შედეგად ორივე პროგრამები იქნება:
Integer
string
Similar articles
Trending Now