Lambda-Ausdrücke

Adriano10

Bekanntes Mitglied
Java:
public class FunktionTest {

    public interface Funktion<T> {

        T calculate(T x);

       
    }

    public static void main(String[] args) {

        // b
        Funktion<Integer> id = (Integer x) -> x;
        Integer a = id.calculate(10);
        System.out.println(a);

        Funktion<Double> inverse = (Double x) -> x * (-1);
        Double a1 = inverse.calculate(-5.3);
        System.out.println(a1);

        Funktion<Integer> timesTen = (Integer y) -> (y * 10);
        Integer a2 = timesTen.calculate(5);
        System.out.println(a2);

        Funktion<Double> divideByPi = (Double y) -> (y / 3.14);
        Double a3 = divideByPi.calculate(12.0);
        System.out.println(a3);

        // c

        Funktion<Double> round = (Double x) -> x;
        Double b = round.calculate(11.5);
        System.out.println(Math.round(b));

        // d

    }
}
Jetzt muss noch eine Hifsmethode "Function<Double, Double> makeChain(final Function<Double, Double>[] funs)" schreiben, die eine Function-Instanz zurückgibt, die eine Verkettung der als Parameter übergebenen functions ist.

Trozt vielen Versuchen schaffe ich leider nicht, diese Hilfsmethode interface anzupassen. Was soll ich jetzt machen?

Vielen Dank für jede Hilfe
 

Adriano10

Bekanntes Mitglied
Java:
public interface Funktion<T> {

        T calculate(T x);

      Function<Double, Double> makeChain(final Function<Double, Double>[] funs) ;
    }

ich habe generisches Interface Funktion<T> und jetzt wird in der Aufgabestellung verlangt, noch eine Hilfemethode
Function<Double, Double> makeChain(final Function<Double, Double>[] funs) zu schreiben, aber wenn ich so versuche, dann meckert Compiler .
 

httpdigest

Top Contributor
Die Hilfsmethode `makeChain` soll sicherlich eine statische Methode sein, da sie sich nicht auf eine Instanz von `Funktion` bezieht, sondern die zu verkettenden Funktionen als Parameter bekommt. Du musst die Methode also als `static` markieren und auch implementieren. Entweder in dem Interface `Funktion` oder in irgendeiner anderen Klasse (keine Ahnung, ob der genaue Ort in der Aufgabenstellung festgelegt ist).
 

Adriano10

Bekanntes Mitglied
Die Hilfsmethode `makeChain` soll sicherlich eine statische Methode sein, da sie sich nicht auf eine Instanz von Funktion bezieht, sondern die zu verkettenden Funktionen als Parameter bekommt. Du musst die Methode also als `static` markieren und auch implementieren. Entweder in dem Interface `Funktion` oder in irgendeiner anderen Klasse (keine Ahnung, ob der genaue Ort in der Aufgabenstellung festgelegt ist).

Vielleich ist es möglich, das Interface an die Hilfsmethode anzupassen. aber wie? komm ich darauf leider nicht.
 

httpdigest

Top Contributor
Du musst doch einfach nur die Methode implementieren und als `static` markieren. Es soll ja nicht jede Ableitung/Implementierung des Funktion-Interfaces nochmal die Methode `makeChain` implementieren müssen. Und auf eine Instanz von `Funktion` bezieht sich die Methode `makeChain` auch nicht -> also: static (und z.B. nicht als `default` Implementierung).
 

Adriano10

Bekanntes Mitglied
Du musst doch einfach nur die Methode implementieren und als `static` markieren. Es soll ja nicht jede Ableitung/Implementierung des Funktion-Interfaces nochmal die Methode `makeChain` implementieren müssen. Und auf eine Instanz von `Funktion` bezieht sich die Methode `makeChain` auch nicht -> also: static (und z.B. nicht als `default` Implementierung).
Java:
public class FunktionTest {

    public interface Funktion<T extends Number, K extends Number> {

        T calculate(K x);

    }

    public static Funktion<Double, Double> makeChain(final Funktion<Double, Double>[] funs) {

        return x -> {
            for (Funktion<Double, Double> f : funs) {
                x = f.calculate(x);
            }
            return x;
        };

    }

    public static void main(String[] args) {
        // b
        Funktion<Double, Double> id = (Double x) -> x;
        Double a = id.calculate(10.0);
        System.out.println(a);

        Funktion<Double, Double> inverse = (Double x) -> x * (-1);
        Double a1 = inverse.calculate(-5.3);
        System.out.println(a1);

        Funktion<Double, Double> timesTen = (Double y) -> (y * 10);
        Double a2 = timesTen.calculate(a1);
        System.out.println(a2);

        Funktion<Double, Double> divideByPi = (Double y) -> (y / 3.14);
        Double a3 = divideByPi.calculate(a2);
        System.out.println(a3);

        // c

        Funktion<Double, Double> round = (Double x) -> x;
        Double b = round.calculate(a3);
        System.out.println(Math.round(b));

        // d
        
        Funktion<Double, Double> chain = makeChain(new Funktion[] { inverse, id,
                timesTen,  divideByPi });
        
        Double g = chain.calculate(5.5);
        System.out.println(Math.round(g));

    }
}

Ich danke dir für den Hinweis. jetzt funktioniert fabelhaft....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Java Lambda Ausdrücke Java Basics - Anfänger-Themen 19
G Lambda Ausdrücke Java Basics - Anfänger-Themen 2
O Lambda Ausdrücke in einem Comparator Java Basics - Anfänger-Themen 4
S Lambda Ausdrücke Streams Java Basics - Anfänger-Themen 6
M Lambda - Ausdrücke verstehen Java Basics - Anfänger-Themen 2
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
F Methoden Lambda Ausdrücke Methodensignatur Java Basics - Anfänger-Themen 6
C Lambda Ausdrücke Java Basics - Anfänger-Themen 1
TheSorm Java 8 Lambda-Ausdrücke Java Basics - Anfänger-Themen 9
C Interface Parameter und Rückgabewerte in Lambda Ausdrücken verwenden Java Basics - Anfänger-Themen 16
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
X Collections.sort als Lambda Java Basics - Anfänger-Themen 14
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
I Lambda map -> Children bekommen Java Basics - Anfänger-Themen 1
L Java reduce() + Lambda Java Basics - Anfänger-Themen 10
O Collections.sort und List.sort mit Lambda Verwirrung Java Basics - Anfänger-Themen 5
M Java 8 Lambda Expression Java Basics - Anfänger-Themen 1
A Lambda Java Basics - Anfänger-Themen 9
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
O Lambda Ausdruck mit Wildcard einschränken Java Basics - Anfänger-Themen 5
B Interface Java Lambda Ausdruck. Java Basics - Anfänger-Themen 11
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
M Lambda - Ausdruck zu Beschreibung erstellen Java Basics - Anfänger-Themen 7
K Lambda-Expression Java Basics - Anfänger-Themen 4
T Lambda-Funktion bei Binärbäumen Java Basics - Anfänger-Themen 13
K Lambda - kompliziertes filtern Java Basics - Anfänger-Themen 5
E Hilfe bei Lambda-Ausdrücken in BlueJ Java Basics - Anfänger-Themen 1
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
M Lambda Expressions Java Basics - Anfänger-Themen 3
S Prüfungsvorbereitung Januar ( Thema Ausdrücke ) Java Basics - Anfänger-Themen 14
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
C Boolsche Ausdrücke Java Basics - Anfänger-Themen 3
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
A Schleifen und Boolsche Ausdrücke Java Basics - Anfänger-Themen 42
K FYI: Reguläre Ausdrücke nutzen ja/nein Java Basics - Anfänger-Themen 2
B Erste Schritte Boolesche Ausdrücke & Gesetze Java Basics - Anfänger-Themen 3
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
D Variablen Ausdrücke Java Basics - Anfänger-Themen 6
P Reguläre Ausdrücke und Korrektheit Java Basics - Anfänger-Themen 2
0 Reguläre Ausdrücke bzw. Zahlenformat im String Java Basics - Anfänger-Themen 7
G Reguläre Ausdrücke Zeichenketten Java Basics - Anfänger-Themen 12
C Klassen Reguläre Ausdrücke auf Gleichheit prüfen Java Basics - Anfänger-Themen 5
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
C Reguläre-Ausdrücke Java Basics - Anfänger-Themen 5
P Ausdrücke berechnen Java Basics - Anfänger-Themen 2
J Java 8 Lamda ausdrücke Java Basics - Anfänger-Themen 9
J reguläre Ausdrücke Java Basics - Anfänger-Themen 1
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
H Erste Schritte Von jpg zu jpeg // reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
S Anweisungen Ausdrücke Java Basics - Anfänger-Themen 7
J Regex Ausdrücke im Array - Wieso werden sie nicht erkannt? Java Basics - Anfänger-Themen 4
K Ausdrücke auswerten Java Basics - Anfänger-Themen 8
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
C Boolsche Ausdrücke - Wo ist mein Fehler? Java Basics - Anfänger-Themen 14
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
M Boolsche Ausdrücke minimieren Java Basics - Anfänger-Themen 13
S arithmetische Ausdrücke prüfen Java Basics - Anfänger-Themen 11
C Reguläre Ausdrücke: string.matches() und gefangene Gruppen Java Basics - Anfänger-Themen 12
S Reguläre Ausdrücke richtig einsetzten Java Basics - Anfänger-Themen 5
T Reguläre Ausdrücke Java Basics - Anfänger-Themen 18
0 Reguläre Ausdrücke und Funktionen Java Basics - Anfänger-Themen 2
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
D Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
S Reguläre Ausdrücke Java Basics - Anfänger-Themen 16
A Reguläre Ausdrücke Frage Java Basics - Anfänger-Themen 3
E Reguläre Ausdrücke mit sehr variablen Eigenschaften Java Basics - Anfänger-Themen 2
T Ausdrucksparser für Mathematische Ausdrücke Java Basics - Anfänger-Themen 15
N Ausdrücke Java Basics - Anfänger-Themen 6
N Reguläre Ausdrücke - bekomme Suchkriterium nicht hin Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke in Java Java Basics - Anfänger-Themen 2
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
W Suche nach strings zwischen eckigen Klammern mittels regulärer Ausdrücke Java Basics - Anfänger-Themen 3
S Strings und reguläre Ausdrücke Java Basics - Anfänger-Themen 2
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 4
S Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
M Reguläre ausdrücke? Java Basics - Anfänger-Themen 8
D Reguläre Ausdrücke: Anzahl Wiederholungen als Variable? Java Basics - Anfänger-Themen 3
A Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
C arithmetische Ausdrücke Java Basics - Anfänger-Themen 7
M Reguläre Ausdrücke - maskieren von Zeichen? Java Basics - Anfänger-Themen 9
M regüläre Ausdrücke, die String - Variablen und Expression Java Basics - Anfänger-Themen 5
M Reguläre Ausdrücke und Ausgabe Java Basics - Anfänger-Themen 10
K Reguläre Ausdrücke - Gefundene Tokens direkt ermitteln Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke: Zeichenfolge ausschließen Java Basics - Anfänger-Themen 2
G Reguläre Ausdrücke Java Basics - Anfänger-Themen 13
L java und reguläre ausdrücke Java Basics - Anfänger-Themen 4
G Reguläre Ausdrücke zum Filtern von logfiles Java Basics - Anfänger-Themen 2
T Reguläre Ausdrücke? Java Basics - Anfänger-Themen 3
E Reguläre Ausdrücke Java Basics - Anfänger-Themen 17
O reguläre Ausdrücke bei java.util.regex.Pattern Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke der Pfade unter Windows und Unix Java Basics - Anfänger-Themen 3
M Ausdrücke -> Werte Java Basics - Anfänger-Themen 6
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
G Problem reguläre Ausdrücke Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke: Inhalt zwischen zwei Schlüsselwörtern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben