Ci sono diverse cose che non vanno.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:
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.
Perché da quello che vedo i generics, l'override e cose del genere non ti sono molto chiari.Originariamente inviato da LiLyblack
Queste classi parametrizzate mi danno parecchi problemi.