Originariamente inviato da LiLyblack
Ciao a tutti.
Mi sto occupando di una classe parametrizzata che si occupa di collezioni di Object.
Posto delle righe di codice:
Ci sono diverse cose che non vanno.
Innanzitutto usi i generics, quindi usali anche per parametrizzare il Vector, cioè:

private Vector<T> els;

e nel costruttore di Set2:

els = new Vector<T>();

Poi hai messo due metodi equals(). Uno prende un Set2<T>, che potrebbe anche andare bene come metodo in overload. Ma l'altro no. Nella classe Object il metodo equals() prende un Object ed è questa la signature che devi usare se vuoi fare l'override di equals().
Mettendo come parametro T ci sarebbero 3 metodi equals: quello ereditato da Object e i tuoi due. Ma quello ereditato e il tuo che riceve T hanno la stessa erasure, infatti la erasure di T è Object. E le regole di Java lo proibiscono.

Originariamente inviato da LiLyblack
Queste classi parametrizzate mi danno parecchi problemi.
Perché da quello che vedo i generics, l'override e cose del genere non ti sono molto chiari.