Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Methodeverwijzing in Java | Geavanceerde Java-Functies en -Technieken
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Java Datastructuren

bookMethodeverwijzing in Java

Voordat we aan de slag gaan met de Stream API, is het nuttig om enkele snelkoppelingen voor lambda-expressies te verkennen. Programmeurs noemen deze "snelkoppelingen" ook wel syntactische suiker.

In dit hoofdstuk bespreken we methode-referenties en hoe deze gebruikt kunnen worden als vervanging voor lambda-expressies.

Methode-referenties

Laten we een eenvoudig voorbeeld bekijken van een lambda-expressie en proberen deze te vervangen door een methode-referentie:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(e -> e.toUpperCase()).forEach(e -> System.out.print(e)); } }

Het gebruik van twee lambda-expressies oogt niet erg elegant, vooral wanneer deze kunnen worden verkort tot methode-referenties uit de klassen waarin ze zijn gedeclareerd.

De syntaxis ziet er als volgt uit:

Example.java

Example.java

copy
1
(Class::Method)

Laten we de bovenstaande code verbeteren met behulp van methode-referenties:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(String::toUpperCase).forEach(System.out::print); } }

De methode toUpperCase is onderdeel van de klasse String, dus gebruiken we de constructie String::toUpperCase. Merk op dat bij het gebruik van een methode-referentie de bewerking op elk element wordt toegepast, waardoor het gebruik van een lambda-expressie niet nodig is. We hebben ook het afdrukken naar het scherm vervangen door System.out::print, wat eveneens een methode-referentie is. Het programma past de methode System.out.print() toe op elk element.

Overigens stelt IntelliJ IDEA zelf voortdurend voor om lambda-expressies te vervangen door methode-referenties als dit mogelijk is, zodat je de syntaxis niet telkens hoeft te onthouden.

Op deze manier zal IntelliJ IDEA zelf voorstellen om je code te verbeteren met behulp van methodereferenties.

Samenvatting

Samengevat voegen methodereferenties geen extra programmeerlast toe. Ze optimaliseren het proces niet, maar maken het ook niet ingewikkelder. Deze constructie is bedoeld om de hoeveelheid geschreven code enigszins te verminderen en de leesbaarheid te verbeteren. Of je lambda-expressies of methodereferenties gebruikt, is aan jou. Bijvoorbeeld, ik vind het duidelijker om een lambda-expressie te schrijven, waarna IntelliJ deze automatisch vervangt door een methodereferentie.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you show more examples of method references?

What are the different types of method references in Java?

When should I use a method reference instead of a lambda expression?

bookMethodeverwijzing in Java

Veeg om het menu te tonen

Voordat we aan de slag gaan met de Stream API, is het nuttig om enkele snelkoppelingen voor lambda-expressies te verkennen. Programmeurs noemen deze "snelkoppelingen" ook wel syntactische suiker.

In dit hoofdstuk bespreken we methode-referenties en hoe deze gebruikt kunnen worden als vervanging voor lambda-expressies.

Methode-referenties

Laten we een eenvoudig voorbeeld bekijken van een lambda-expressie en proberen deze te vervangen door een methode-referentie:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(e -> e.toUpperCase()).forEach(e -> System.out.print(e)); } }

Het gebruik van twee lambda-expressies oogt niet erg elegant, vooral wanneer deze kunnen worden verkort tot methode-referenties uit de klassen waarin ze zijn gedeclareerd.

De syntaxis ziet er als volgt uit:

Example.java

Example.java

copy
1
(Class::Method)

Laten we de bovenstaande code verbeteren met behulp van methode-referenties:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(String::toUpperCase).forEach(System.out::print); } }

De methode toUpperCase is onderdeel van de klasse String, dus gebruiken we de constructie String::toUpperCase. Merk op dat bij het gebruik van een methode-referentie de bewerking op elk element wordt toegepast, waardoor het gebruik van een lambda-expressie niet nodig is. We hebben ook het afdrukken naar het scherm vervangen door System.out::print, wat eveneens een methode-referentie is. Het programma past de methode System.out.print() toe op elk element.

Overigens stelt IntelliJ IDEA zelf voortdurend voor om lambda-expressies te vervangen door methode-referenties als dit mogelijk is, zodat je de syntaxis niet telkens hoeft te onthouden.

Op deze manier zal IntelliJ IDEA zelf voorstellen om je code te verbeteren met behulp van methodereferenties.

Samenvatting

Samengevat voegen methodereferenties geen extra programmeerlast toe. Ze optimaliseren het proces niet, maar maken het ook niet ingewikkelder. Deze constructie is bedoeld om de hoeveelheid geschreven code enigszins te verminderen en de leesbaarheid te verbeteren. Of je lambda-expressies of methodereferenties gebruikt, is aan jou. Bijvoorbeeld, ik vind het duidelijker om een lambda-expressie te schrijven, waarna IntelliJ deze automatisch vervangt door een methodereferentie.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 4
some-alt