Generyki Flashcards

1
Q

Co to są generyki w Javie?

A
  • mechanizm pozwalający na typowanie klas, interfejsów, metod
  • umożliwaja tworzenie elastycznych typów, które zachowują bezpieczneństwo statycznego typowania w trakcie kompilacji
  • kompilator sprawdza typy podczas kompilacji, co zapobiega błędom typu podczas działania programu.
  • zapobiega ClassCastException
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Co to jest ograniczenie typu (type bound) w generykach?

A
  • pozwala określić z jakich typów może korzystać parametr typu
  • T extends Number> oznacza, że T może być dowolonym typem, który jest podtypem klasy Number
  • kompilator będzie wiedział, że ten obiekt będzie miał metody tej klasy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Czym jest typ wildcard w generykach Javy?

A
  • ? znak używany jako typ argumentu
  • pozwala reprezentować nieznany typ
  • List? extends Number> oznacza liste nieznanego typu ale ten typ jest podtypem klasy Number
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jakie są główne zalety korzystania z generyków w Javie?

A
  • błędy są typów są wykrywane w czasie kompilacji a nie wykonywania
  • Eliminacja potrzeby rzutowania.
  • Możliwość tworzenia kodu, który jest bardziej elastyczny i czytelny.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

bounded vs wildcard

A
  • T extends Number>
  • daje możliwość odnieść sie do konkretnego typu Number w metodzie - mamty dostęp do metod number
  • ? extends Number>
  • nie można odnieść się w metodzie do ?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jak zadeklarować klase generyczna

A
Pudełko<String> pudełkoZTekstem = new Pudełko<>("Tekst");
Pudełko<Integer> pudełkoZLiczba = new Pudełko<>(123);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Klasa generyczna z wieloma parametrami typu

A
Para<String, Integer> para = new Para<>("Wiek", 25);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jak zdefiniować generyczną metodę do printowania zawartości Array ?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly