您现在的位置是:主页 > news > 网站建设官网免费模板/外贸网站seo教程

网站建设官网免费模板/外贸网站seo教程

admin2025/6/19 13:17:11news

简介网站建设官网免费模板,外贸网站seo教程,网站怎么做访问量统计,购物小程序源码匿名类、函数式接口LambdaSupplier函数式接口ConsumerConsumer thenpredictpredicate andLambda 【匿名类】 Java 中可以实现一个类中包含另外一个类,且不需要提供任何的类名直接实例化。匿名类是不能有名字的类,它们不能被引用,只能在创建时…

网站建设官网免费模板,外贸网站seo教程,网站怎么做访问量统计,购物小程序源码匿名类、函数式接口LambdaSupplier函数式接口ConsumerConsumer thenpredictpredicate andLambda 【匿名类】 Java 中可以实现一个类中包含另外一个类,且不需要提供任何的类名直接实例化。匿名类是不能有名字的类,它们不能被引用,只能在创建时…

匿名类、函数式接口

  • Lambda
    • Supplier函数式接口
    • Consumer
      • Consumer then
    • predict
      • predicate and

Lambda

【匿名类】
Java 中可以实现一个类中包含另外一个类,且不需要提供任何的类名直接实例化。匿名类是不能有名字的类,它们不能被引用,只能在创建时用 new 语句来声明它们。
常见有匿名类实现接口:

new Thread(new Runnable() {@Overridepublic void run() {}});

在这里插入图片描述注意接口在Java8之后提供了方法实现,即被default关键词修饰的方法。但是default方法不被认为是接口的方法,即在Lambda表达式 时不算在内。

口诀: 拷贝小括号 写死右箭头 落地大括号

Supplier函数式接口

使用Supplier传参可以减少代码的浪费执行,只有有必要时才执行。
在这里插入图片描述

package com.lambda;import java.util.function.Supplier;public class SupplierDemo {public static String getFirstString(String s1, Supplier<String> s2Supplier){if( s1 != null && s1.length() > 0) return s1;//只有当s1为null时才通过Supplier函数式接口调用生成s2的方法String s2 = s2Supplier.get();if( s2 != null && s2.length() > 0) return s2;return null;}public static void main(String[] args) {System.out.println(getFirstString("", new Supplier<String>() {public String get() {return makeString();}}));//lambda表达式 写法System.out.println(getFirstString("",() -> makeString()));}private static String makeString() {System.out.println("makeString ……");return String.format("%d %s", 1, "hello");}
}

Consumer

package com.lambda;import java.util.function.Consumer;public class ConsumerDemo {public static void forEach(int nums[], Consumer<Integer> consumer){if( nums == null || consumer == null) return;for(Integer num: nums){//该函数式接口接受numconsumer.accept(num);}}public static void main(String[] args) {int nums[] = {1, 2, 3, 4, 5};forEach(nums, new Consumer<Integer>() {//接收到这里@Overridepublic void accept(Integer integer) {System.out.println(integer + 10);}});//lambda 写法forEach(nums,integer -> System.out.println(integer + 10));}
}

Consumer then

相当于 c1.accept(n) ,c2.accept(n)
在这里插入图片描述

predict

test() 传判断表达式。

在这里插入图片描述

predicate and

两个表达式都要满足。
在这里插入图片描述