目录
一、jdk1.8内置的四大核心函数式接口
- 一、jdk1.8内置的四大核心函数式接口
- 二、消费型函数式接口示例
- 三、供给型函数式接口示例
- 四、函数型函数式接口示例
- 五、断言型函数式接口示例
-
Consumer : 消费型函数式接口,指方法有参数但是无返回值(即有去无回)。
void accept(T t);
-
Supplier : 供给型函数式接口,指方法无参数但是有返回值(即只知道获取返回值)。
T get();
-
Function : 函数型函数式接口,指方法有参数且有返回值(即有去有回)。
R apply(T t);
-
Predicate : 断言型函数式接口,指方法有参数且返回值为boolean类型。
boolean test(T t);
1、以Consumer接口类中的accept方法举例 2、示例代码如下:
package com.xz.springboot_java8.day4;
import java.util.function.Consumer;
/**
* @description: 消费型函数式接口示例(方法有参数但是无返回值)
* @author: xz
*/
public class Test1 {
public static void main(String[] args) {
getConsumer(1000,(x)-> System.out.println("xz游戏充值消费了【"+x+"】元"));
}
/**
* @param money 消费金额
* @param consumer 函数式接口
*/
public static void getConsumer(double money, Consumer consumer){
consumer.accept(money);
}
}
3、运行main函数,输出结果如下图:
1、以Supplier接口类中的get方法举例 2、示例代码如下:
package com.xz.springboot_java8.day4;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
/**
* @description: 供给型函数式接口(方法无参数但是有返回值)
* @author: xz
*/
public class Test2 {
public static void main(String[] args) {
List listNumber = getListNumber(20, () -> (int)(Math.random() * 100));
for(Integer num:listNumber){
System.out.println(num);
}
}
/**
* 生产指定个数的整数,并放入集合中
* @param number
* @param supplier
* @return
*/
public static List getListNumber(int number, Supplier supplier){
List list = new ArrayList();
for(int i=0;ix.substring(2, 5));
System.out.println(str);
}
/**
* @param str 传入的字符串
* @param function
* @return
*/
public static String getStrHandler(String str, Function function){
return function.apply(str);
}
}
3、运行main函数,输出结果如下图:
1、以Predicate接口类中的test方法举例 2、示例代码如下:
package com.xz.springboot_java8.day4;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
/**
* @description: 断言型函数式接口(方法有参数且返回值为boolean类型)
* @author: xz
*/
public class Test4 {
public static void main(String[] args) {
List list = Arrays.asList("java", "jdk", "jre", "spring");
List strList = getFilterStr(list, (x) -> x.length() > 3);
for (String str : strList) {
System.out.println(str);
}
}
/**
* 将满足条件的字符串,放入集合中
* @param list
* @param predicate
*/
public static List getFilterStr(List list, Predicate predicate){
List strList = new ArrayList();
for(String str:list){
if(predicate.test(str)){
strList.add(str);
}
}
return strList;
}
}
3、运行main函数,输出结果如下图: