final parameters in Java

Enkele weken terug kwam er een collega naar me met de vraag Wat is het nut van het keyword final in methode parameters? Veel duidelijker werden we niet van de uitleg op sommige websites omdat ze verkeerde voorbeelden gebruiken. De lector gaf ook niet echt een deftig uitleg en gaf aan dat het weinig gebruikt wordt. Mijn theorie is dat final parameters gebruikt wordt op objecten. De bedoeling van een final parameter is dat de methode het object niet kan laten wijzen naar een ander object. Je zou dit kunnen vergelijken met constante pointers bij C/C++. Een klein Java voorbeeldje hieronder.

Point.java
Line.java

Als je de klasse Line gaat compilen krijg je de volgende ouput terug.

Foutmelding final parameter in Java

Foutmelding final parameter in Java

Wat is het nu het nut zou je als lezer (als je tot hier geraakt bent en nog niet hersendood bent :p) afvragen? Als ik me parameter zijn adresruimte niet verander, is er toch niet mis. In principe is dat waar maar zo voorkom je dat je het doet en dat je aan de programmer, die je code gebruikt, kan zeggen dat zijn object niet naar een nieuw adresruimte wordt toegekent.

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s

%d bloggers op de volgende wijze: