Osaiskohan kukaan kertoa miten Iterator-rajapinnan metodista remove() saa tehtyä vapaaehtoisen? Tai siis jos tekee luokan, joka toteuttaa iterator-rajapinnan, ja remove()-metodia ei toteuteta tässä luokassa, niin miten kääntäjän saisi uskomaan, ettei kannattaisi kysellä removen perään?
Iteratorin remove()
javaaja
2181
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 2
Vanhimmat
Jos Iterator ei tue remove operaatiota, pitää remove metodin silloin palauttaa UnsupportedOperationException poikkeutuksen, kuten speksit sanoo. Eli metodin toteutus on silloin seuraava:
--- ESIMERKI ALKAA ---
public void remove() throws UnsupportedOperationException {
throw new UnsupportedOperationException();
}
--- ESIMERKI LOPPUU ---
Kiitoksia neuvosta, niinhän se toimi. Itsekin luin googlaillessani ongelmaa jostain, että pitäisi heittää tuollainen virhe...en jaksanut kuitenkaan enää lukea pidemmälle. Enkä olisi muistanut ilman kertausta enää, kuinka virheitä heitellään oikein. Kiitoskiitos.