java1.8 四大函数型接口、实体类必备注解

话不多说直接上代码

package com.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

@AllArgsConstructor// 全参构造
@NoArgsConstructor// 无参构造
@Data// getset方法
@Accessors(chain = true)// 链式变成一条线set
public class Student {

    private Long id;
    private String name;
    private Integer age;


    public static void  main(String[] a){
        Student student=new Student();
        // 链式编程
        student.setId(1L).setAge(12);
        System.out.println(student);
        //以下泛型 输入String 输出Integet (lamda表达式+函数型接口)
        Function function= s->{return 123;};
        System.out.println(function.apply("a"));

        //以下泛型 输入String 输出void (lamda表达式+消费型接口)
        Consumer consumer= s->{System.out.println(s);};
        consumer.accept("asdd");

        //以下泛型 输入 无 输出Study (lamda表达式+供给型接口)
        Supplier supplier= ()->{return new Student().setId(2L).setName("张三");};
        System.out.println(supplier.get());

        //以下泛型 输入 Striong 输出 boolean(lamda表达式+布尔型接口)
        Predicate predicate=s->{return s.contains("a");};
        System.out.println(predicate.test("abc"));
    }
}

 

 

 

你可能感兴趣的:(四大函数型接口,jdk1.8,四大函数型接口)