Microsoft Word кл программирование на Java 2020 Зорина docx


Дженерики или обобщенные типы (generics)



Pdf көрінісі
бет50/65
Дата17.10.2023
өлшемі3,23 Mb.
#117230
түріРеферат
1   ...   46   47   48   49   50   51   52   53   ...   65
Дженерики или обобщенные типы (generics). 
-
позволяют указать «условный тип», с которым работает код; 


104 
-
используются, когда один и тот же код применим к большому числу 
типов; 
-
позволяют повысить безопасность, за счет контроля типов на стадии 
компиляции программы, а не выполнения; 
-
в основном используются контейнерами. Все интерфейсы и классы 
коллекций сделали параметризированными. 
interface Wheeled{} 
class Crossover implements Wheeled{} 
class Hatchback implements Wheeled{} 
class Trailer implements Wheeled{} 
class PotatoesBag {}; 
class Garage
private T keepingThing; 
public Garage(T keepingThing){ this.keepingThing = 
keepingThing; } 
public T getKeepingThing(){ return keepingThing; } 

class Man { 
public static void main(String[] args) { 
Garage garage = new Garage (new 
Crossover()); 
Garage
anotherGarage =
new Garage
(new PotatoesBag()); 
PotatoesBag bag = 
anotherGarage.getKeepingThing(); 

}
 
Особенности использования дженериков. 
-
код работает только с тем типом, который указан в угловых скобках; 
-
позволяют создавать более компактный код, чем при использовании 
ссылок типа 
Object

-
обеспечивают автоматическую проверку и приведение типов; 
-
позволяют создавать хороший повторно используемый код. 
Особенности параметризованных типов. 
Использовать примитивные типы в качестве параметрических типов нельзя. 


105 
Если одинаковые настраиваемые типы имеют различные аргументы (типы-
параметры), то это различные типы. 
//
несовместимые

различные
типы
Garage garage; 
Garage anotherGarage; 
Статические компоненты класса не могут использовать его типы-параметры. 
Также настраиваемый класс не может расширять класс Throwable. 
Стирание типа. 
В обобщенном коде информация о параметрах-типах обобщения стирается (это 
значит, что при использовании обобщения любая конкретная информация о типе 
теряется). Тип известен только на стадии компиляции (во время статической 
проверки типов). После этого каждый обобщенный тип стирается, то есть заменяется 
необобщенным верхним ограничением. Компилятор обеспечивает внутреннюю 
целостность использования типов, контролируя их на «входе» и «выходе», 
самостоятельно выполняя приведения типов. 


Достарыңызбен бөлісу:
1   ...   46   47   48   49   50   51   52   53   ...   65




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет