Middle
Ce sunt tipurile generice?
sobes.tech AI
Răspuns de la AI
Tipurile generice (Generics) sunt un mijloc de parametrizare a tipurilor, permițând crearea de clase, interfețe și metode universale. Ele permit lucrul cu diferite tipuri de date fără a pierde siguranța tipurilor în timpul compilării.
Principalele avantaje ale utilizării Generics:
- Siguranța tipurilor: Compilatorul verifică compatibilitatea tipurilor în timpul compilării, ajutând la identificarea potențialelor erori înainte de rularea programului.
- Reducerea duplicării codului: Se poate crea o singură clasă sau metodă care funcționează cu diferite tipuri, în loc să se scrie cod separat pentru fiecare tip.
- O mai bună lizibilitate a codului: Utilizarea tipurilor generice face ca codul să fie mai ușor de înțeles, indicând cu ce tipuri de date lucrează.
- Eliminarea necesității de casting explicit: Când se lucrează cu colecții generice, nu este nevoie să se convertească explicit elementele la tipul dorit la extragere.
Exemplu de utilizare în Java:
// Crearea unei liste care poate stoca doar șiruri de caractere
List<String> stringList = new ArrayList<>();
stringList.add("salut");
// stringList.add(123); // Eroare de compilare, deoarece 123 nu este un șir de caractere
// Obținerea unui element fără necesitatea de casting
String primulElement = stringList.get(0);
Exemplu de utilizare în C#:
// Crearea unei liste care poate stoca doar numere întregi
List<int> intList = new List<int>();
intList.Add(10);
// intList.Add("lume"); // Eroare de compilare, deoarece "lume" nu este un număr întreg
// Obținerea unui element fără necesitatea de casting
int numar = intList[0];
Exemplu de clasă generică:
// Clasa generică Box, care poate stoca un obiect de orice tip T
public class Box<T> {
private T item;
public void setItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
}
// Utilizarea clasei generice
Box<Integer> intBox = new Box<>();
intBox.setItem(123);
int valoareInt = intBox.getItem(); // Fără nevoie de casting
Box<String> stringBox = new Box<>();
stringBox.setItem("test");
String valoareString = stringBox.getItem(); // Fără nevoie de casting
Astfel, tipurile generice sunt un instrument puternic pentru crearea de cod flexibil, sigur și ușor de întreținut.