Thomas Darimont
Erfahrenes Mitglied
Hallo,
im folgenden Beispiel kann man sehen wie man mit MethodHandles Function Currying (http://de.wikipedia.org/wiki/Currying) realisieren kann.
Die sum-Methode gibt es erst ab JDK 8 - Wenn man das Beispiel mit Java 7 ausprobieren möchte kann könnte man Beispielsweise alternativ dazu auch mit der - Math.max(..) - Method arbeiten.
Schaut mal hier:
Gruß Tom
im folgenden Beispiel kann man sehen wie man mit MethodHandles Function Currying (http://de.wikipedia.org/wiki/Currying) realisieren kann.
Die sum-Methode gibt es erst ab JDK 8 - Wenn man das Beispiel mit Java 7 ausprobieren möchte kann könnte man Beispielsweise alternativ dazu auch mit der - Math.max(..) - Method arbeiten.
Schaut mal hier:
Java:
package de.tutorials.training;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
/**
* Author: tom
*/
public class MethodHandleCurryingExample {
public static void main(String[] args) throws Throwable {
MethodHandles.Lookup lookup = MethodHandles.lookup();
MethodHandle sum = lookup.findStatic(Integer.class, "sum", MethodType.methodType(int.class, new Class[]{int.class, int.class}));
//Currying
MethodHandle plus1 = MethodHandles.insertArguments(sum,0,1);
int result = (int) plus1.invokeExact(2);
System.out.println(result); // Output: 3
}
}
Gruß Tom