%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Java}
\chead{}
\ohead{http://kohnlehome.de/java/lambda.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
Lambda Expressions
\end{center}


Kurzschreibweise für eine anonyme innere Klasse mit nur einer Methode

\section{Schnittstelle}
\begin{verbatim}
@FunctionalInterface
public interface Schnittstelle {    
    public int einzigeMethode(int parameter1, int parameter2);    
}
\end{verbatim}

\section{Definition einer Funktion, die die Schnittstelle verwendet}
\begin{verbatim}
private static void funktion(Schnittstelle schnittstelle) {
        System.out.println(schnittstelle.einzigeMethode(5,3));
}
\end{verbatim}

\section{Funktionsaufruf mit Implementierung der Schnittstelle}
\subsection*{mit anonymer innerer Klasse}
\begin{verbatim}
funktion(new Schnittstelle(){
    @Override
    public int einzigeMethode(int parameter1, int parameter2) {
        return parameter1 + parameter2;
    }
});
\end{verbatim}

\subsection*{mit Lambda Expression}
\begin{verbatim}
funktion( (parameter1, parameter2) -> { 
    return parameter1 + parameter2;
});
\end{verbatim}







\end{document}
