<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Lambda Expressions on JAVAPRO Germany</title><link>https://javapro.svenruppert.com/tags/lambda-expressions/</link><description>Recent content in Lambda Expressions on JAVAPRO Germany</description><generator>Hugo</generator><language>de-DE</language><lastBuildDate>Fri, 18 Dec 2020 14:17:32 +0000</lastBuildDate><atom:link href="https://javapro.svenruppert.com/tags/lambda-expressions/index.xml" rel="self" type="application/rss+xml"/><item><title>Die Magie der Lambdas</title><link>https://javapro.svenruppert.com/die-magie-der-lambdas/</link><pubDate>Fri, 18 Dec 2020 14:17:32 +0000</pubDate><guid>https://javapro.svenruppert.com/die-magie-der-lambdas/</guid><description>&lt;p&gt;&lt;strong&gt;Mit der JDK-Version 8 wurde der Versuch gestartet, die objektorientierte Welt mit den Vorteilen der funktionalen Programmierung zu verbinden. Dazu wurden die Lambda-Ausdrücke eingeführt, ein mächtiges aber leider oft unterschätztes Werkzeug. Da Lambda-Ausdrücke jedoch ein integraler Bestandteil des JDK und vieler Frameworks sind, kommt man in der Java-Welt nur noch schwer um sie herum.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="code--daten"&gt;Code = Daten&lt;/h2&gt;
&lt;p&gt;Die mit Java 8 eingeführten Lambda-Ausdrücke sollen die objektorientierte Programmiersprache Java mit den Vorteilen bekannter Konzepte aus der funktionalen Programmierung bereichern. Dazu muss erst einmal geklärt werden, dass Daten nicht notwendigerweise nur aus Zahlen, Bytes oder Zeichenketten bestehen, die in einem Programm herumgereicht werden, sondern dass auch der Code unseres Programms nichts anderes ist als Daten. Daten können an Methoden übergeben werden. Es ist also bekanntermaßen kein Problem Daten zum Beispiel in Form eines Integers oder eines komplexen Objekts an eine Methode weiterzugeben. Doch auch Code kann an eine Methode übergeben werden. Vor Java 8 verwendete man dazu eine Referenz auf ein Objekt. Innerhalb der Methode können dann die Methoden des Objekts aufgerufen werden und somit ist ein Zugriff auf dessen Code möglich. Oftmals macht man es sich zunutze, dass die Klasse des Objekts eine bestimmte Methode implementiert, die beispielsweise durch ein Interface oder eine abstrakte Klasse vorgegeben ist. Bekannt sind das Interface &lt;strong&gt;Runnable&lt;/strong&gt;, in deren Methode &lt;strong&gt;run&lt;/strong&gt; der Code für einen Thread verpackt wird, und das Interface &lt;strong&gt;ActionListener&lt;/strong&gt; zur Definition einer Aktion, die z.B. beim Klick auf eine Schaltfläche ausgeführt werden soll. Diese Aktion wird in der vom Interface vorgegebenen Methode &lt;strong&gt;actionPerformed&lt;/strong&gt; definiert.&lt;/p&gt;</description></item></channel></rss>