几种Lambda形式

import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.BinaryOperator;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.function.UnaryOperator;
public class FunctionType
{
public Supplier<Number> noParamLambda()
{
return () -> 3;
}
public Supplier<Number> noParamLambda2()
{
return new Supplier<Number>()
{
public Number get()
{
return 3;
}
};
}

public Supplier<Number> noParamLambda3()
{
    Supplier<Number> a = () -> 3;//不能写成Object a = 
    return a;
}
//**********************************************
public Function<String, String> oneParamLambda()
{
    return a -> a +" post";
}

public Function<String, String> oneParamLambda2()
{
    return new Function<String, String>()
            {
                public String apply(String a)
                {
                    return a + " post";
                }
            };
}

public Function<String, String> oneParamLambda3()
{
    Function<String, String> b = a -> a +" post";
    return b;
}

public Predicate<String> oneParamRtBooleanLambda()
{
    return x -> x != null && x.indexOf("hello") >= 0;
}

public <T> UnaryOperator<T> oneParamWithSameReturnType()
{
    return a -> a;
}

//************************************************
public BiFunction<String, String, String> twoParamLambda()
{
    return (a, b) -> a + b;
}

public BiFunction<String, String, String> twoParamLambda2()
{
    return new BiFunction<String, String, String>()
            {
                public String apply(String a, String b)
                {
                    return a + b;
                }
            };
}

public BiFunction<String, String, String> twoParamLambda3()
{
    BiFunction<String, String, String> w = (a, b) -> a + b;
    return w;
}

public <T> BinaryOperator<T> twoParamWithSameTypeAndReturnSameType()
{
    return (a, b) -> a;
}

//*******************************************
public Consumer<String> noReturnLambda()
{
    return a -> System.out.println(a);
}

public BiConsumer<String, String> noReturnLambda2()
{
    return (a, b) -> System.out.println(a+" "+b);
}
//*******************************************
public <T,U,V> Function<U,V> partial2To1(BiFunction<T, U, V> bf, T t)
{
    return u -> bf.apply(t, u);
}

public <U,V> Supplier<V> partial1To0(Function<U, V> bf, U u)
{
    return () -> bf.apply(u);
}

//*******************************************
public <T,U,V> Function<T, Function<U,V>> curry(BiFunction<T,U,V> bf)
{
    return t -> (u -> bf.apply(t,u));
}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 3,948评论 2 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Java 8自Java 5(发行于2004)以来最具革命性的版本。Java 8 为Java语言、编译器、类库、开发...
    huoyl0410阅读 661评论 1 2
  • 那条熟悉的路,走了千遍万遍,一走就是半个世纪。踏上它,即使在暗夜里都不会迷途,闭上眼睛都能知道它哪里有坑,哪里有洼...
    远方的牵念阅读 280评论 0 0
  • 1 最近,我的各项欲望均处于历史最低水平。 莫非是天冷导致的?夏天似乎也不怎么亢奋啊。 或许是因为太穷?这个倒是有...
    脱口岳阅读 631评论 0 0