编程技术文章分享与教程

网站首页 > 技术文章 正文

java8新特性-lambda(基本语法)(jdk8新特性lambda)

hmc789 2024-11-16 20:57:22 技术文章 2 ℃

1.lambda基本语法

(1)声明部分:就是和lambda表达式绑定的接口类型

(2)参数部分:包含一对圆括号中,和绑定的接口中的抽象方法中的参数个数和顺序相同

(3)操作符部分:->

(4)执行代码块:包含一对大括号中,出现在操作符的右侧

@FunctionalInterface 函数式接口(接口中的抽象方法中只有一个)

只有一个方法的抽象类才能使用这个注解,多个方法会报错,更好的编译

匿名内部类

new Thread(new Runnable() {

public void run() {

System.out.println("hello");

}

}).start();

Lambda

要求接口定义抽象方法只能一个

格式

()->{}

()参数列表 参数只有一个 ()可省略 参数类型可省略不写,但是要么都省略,要么都不省略

-> lambda表达式 goes to

{} 方法体 只有一条语句的时候 {}可省略

当方法体里是{retrun 10;}时 {}可省略 return也应该省略

Function(函数型) 有传入类型参数,有返回类型参数

Function function=(str)->{return str;};

System.out.println(function.apply("123456"));

Predicate(断言型)有传入类型参数返回值为boolean

Predicate<String> predicate=(t)->{

return t.isEmpty();

};

System.out.println(predicate.test("String"));

Consumer(消费者) 只有输入,没有返回

Consumer<String> consumer= (str)->{

System.out.println(str);

};

consumer.accept("1221");

Supplier(供给型)没有参数,只有返回值;

Supplier<String> supplier=()->{return "123456";};

System.out.println(supplier.get());

1.Consumer<T>

void accept(T t);//接受一个泛型类型参数无返回

2.BiConsumer<T, U>

void accept(T t, U u);//接受两个泛型类型参数无返回

3.DoubleConsumer

void accept(double value);//接收double类型,无返回

4.IntConsumer

void accept(int value);//接收int类型,无返回

5.LongConsumer

void accept(long value);//接收long类型,无返回

6.ObjDoubleConsumer<T>

void accept(T t, double value);//接收两个参数,一个泛型,一个double

7.ObjIntConsumer<T>

void accept(T t, int value);//接收两个参数,一个泛型,一个int

8.ObjLongConsumer<T>

void accept(T t, long value);//接收两个参数,一个泛型,一个long

标签列表
最新留言