Hei.
Kysyisin semmoista kun olen katsellut tuota javan lähdekoodia jonka saa sieltä sivuilta enkä ymmärrä sitä että miksi on Vector luokan koodissa tälläistä:
public class Vector
extends AbstractList
Mitä tuo tarkoittaa ja jos tuo E on joku olio tai muuttuja niin missä luokassa se on määritelty?
Kiitos.
p.s. tämä ei kylläkään liity linuxiin mitenkään erityisemmin mutta kiva jos vastaatte.
Kyse on käännösaikaisesta tyyppiparametroinnista eli geneerisyydestä ja E on tässä muodollinen tyyppiparametri. Käytännössä kyse on siitä, että kun Vector on geneerinen luokka, niin voit antaa tuohon “E:n kohdalle” sille parametriksi jonkun tyypin. Esimerkiksi Vector on Vector, johon voi tallentaa pelkkiä String-olioita.
[quote=“MHFN, post:3, topic:965”]Vector v = new Vector();
…
niin tuo E paikkaantuu Stringillä ja silloin myös metodit tietävät että on String kyseessä.[/quote]
Suunnilleen kyllä. Pitäisi varmaankin kirjoittaa Vector v = new Vector();
Ja jos ihan tarkasti teknisesti otetaan, niin Javassa geneerisyys on käännösaikaista, eli kääntäjä tarkistaa tyypit, suorituksen aikana metodit jne. eivät enää tiedä geneerisyydestä käytännössä mitään.