这实现了我想做的事情:
Function<String, StringBuilder> addEllipsis = appendToMe -> appendChar( '.', 3, appendToMe);BiFunction<String, Integer, StringBuilder> addBangs = (appendToMe, times) -> appendChar('!', times, appendToMe);// Create a function by applying one argument to another functionFunction<String, StringBuilder> addoneBang = appendToMe -> addBangs .apply(appendToMe, 1);StringBuilder res1 = addBangs.apply("Java has gone functional", 2);StringBuilder res2 = addOneBang.apply("Lambdas are sweet");StringBuilder res3 = addEllipsis.apply("To be continued");有关Java函数对象的所有预定义变体的列表,请在此处查看。
编辑:
如果您的方法带有很多参数,则可以编写自己的函数:
@FunctionalInterfacepublic interface TriFunction<T, U, V, R> { R apply(T t, U u, V v);}方法接受很多参数;您想提供其中一些:
private static boolean manyArgs(String str, int i, double d, float f) { return true;}这是使用自定义函数对象的方式:
TriFunction<Integer, Double, Float, Boolean> partiallyApplied = (i, d, f) -> manyArgs("", i, d, f);boolean res4 = partiallyApplied.apply(2, 3.0, 4.0F);System.out.println("No time for ceremonies: " + res4);


