Generics

Daraja: O'rta

Generics kompilyatsiya vaqtida tur xavfsizligini beradi — `List<String>` ichiga tasodifan Integer tusha olmaydi va cast yozish shart emas. `<T>` — tur parametri. `? extends T` — o'qish uchun, `? super T` — yozish uchun (PECS qoidasi). Ish vaqtida turlar o'chiriladi (type erasure).

Tushuntirish

Generics kompilyatsiya vaqtida tur xavfsizligini beradi — `List<String>` ichiga tasodifan Integer tusha olmaydi va cast yozish shart emas. `<T>` — tur parametri. `? extends T` — o'qish uchun, `? super T` — yozish uchun (PECS qoidasi). Ish vaqtida turlar o'chiriladi (type erasure).

Kod misoli

class Quti<T> {
    private T qiymat;
    void sol(T q) { this.qiymat = q; }
    T ol() { return qiymat; }
}

Quti<String> q = new Quti<>();
q.sol("Java");

static <T extends Comparable<T>> T engKatta(List<T> ro) {
    T max = ro.get(0);
    for (T e : ro) if (e.compareTo(max) > 0) max = e;
    return max;
}

Keng tarqalgan xatolar

Mashqlar

Teglar: generics, tur

Interaktiv ko'rinish (viktorina, izohlar, tarix)