Lambda语法简化为方法引用,Lambda的核心在于函数式接口,而函数式接口的核心在于只有一个方法,在函数式接口中只需要四个接口,就是方法无参无返回值,方法无参有返回值,方法有参无返回值,方法有参有返回值
1.消费型接口(有参数无返回值)
public interface Consumer<T>{public void accept(T t);}
package com.wjx.sayHello;
import java.util.function.Consumer;
public class TestDemo {
public static void main(String[] args){
Consumer<String> con=System.out::println;
con.accept("你好世界");
}
}
2.供给型接口
public interface Supplier<T>{public T get()}
不接受参数
package com.wjx.sayHello;
import java.util.function.Supplier;
public class TestDemo {
public static void main(String[] args){
Supplier<String> t="hello"::toUpperCase;
System.out.println(t.get());
}
}
3。断言式函数接口
判断操作
public interface Predicate<T>{public boolean test(T t);}
package com.wjx.sayHello;
import java.util.function.Predicate;
public class TestDemo {
public static void main(String[] args){
Predicate<String> pre="##hello"::startsWith;
System.out.println(pre.test("##"));
}
}
4.功能型接口
public interface Function<T,R>{public R apply(T t)}
当你把数据传入进行一些处理并返回的时候我们用功能性接口,另外功能性接口还有一些扩充,比如你确定你传入数据是整型,则可以使用IntFunction来接受数据,此时定义一个返回的数据类型即可
package com.wjx.sayHello;
import java.util.function.Function;
public class TestDemo {
public static void main(String[] args){
Function<Integer, String> fun=String::valueOf;
System.out.println(fun.apply(10002).length());
}
}