IntSuppliersupplier=()->42;// int -> intIntFunction<String>func=i->"N"+i;// int -> StringIntPredicatepred=i->i>0;// int -> booleanIntConsumerconsumer=i->log(i);// int -> voidIntUnaryOperatorop=i->i*2;// int -> intIntBinaryOperatorbinOp=(a,b)->a+b;// int,int -> int
Function<String,String>trim=String::trim;Function<String,String>toUpper=String::toUpperCase;Function<String,String>addPrefix=s->"Hello, "+s;// andThen:先执行当前,再执行参数Function<String,String>pipeline=trim.andThen(toUpper).andThen(addPrefix);Stringresult=pipeline.apply(" alice ");// "Hello, ALICE"// compose:先执行参数,再执行当前Function<String,String>pipeline2=addPrefix.compose(toUpper).compose(trim);Stringresult2=pipeline2.apply(" alice ");// "Hello, ALICE"
4.2 Predicate 组合
Predicate<String>nonEmpty=s->!s.isEmpty();Predicate<String>shortStr=s->s.length()<10;Predicate<String>startsWithA=s->s.startsWith("A");// and / or / negatePredicate<String>combined=nonEmpty.and(shortStr).and(startsWithA.negate());combined.test("Hello");// truecombined.test("ABCDEF");// false
4.3 Consumer 组合
Consumer<String>log=s->System.out.println("LOG: "+s);Consumer<String>audit=s->System.out.println("AUDIT: "+s);Consumer<String>logAndAudit=log.andThen(audit);logAndAudit.accept("user login");// LOG: user login// AUDIT: user login
publicclassDemo{privateStringname="Outer";publicvoidtest(){// Lambda 中的 this 指向外部类实例Runnabler=()->System.out.println(this.name);// "Outer"// 匿名内部类中的 this 指向匿名类实例Runnabler2=newRunnable(){privateStringname="Inner";publicvoidrun(){System.out.println(this.name);// "Inner"}};}}
终极AMD Ryzen调优指南:免费开源SDT调试工具完全掌握 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://git…