Java 8 Function函数式接口
函数式接口
函数式接口(Functional Interface)是Java 8对一类特殊类型的接口的称呼。 这类接口只定义了唯一的抽象方法的接口,
并且这类接口使用了@FunctionalInterface进行注解。在jdk8中,引入了一个新的包java.util.function,
可以使java 8 的函数式编程变得更加简便。这个package中的接口大致分为了以下四类:
Function: 接收参数,并返回结果,主要方法 R apply(T t)
Consumer: 接收参数,无返回结果, 主要方法为 void accept(T t)
Supplier: 不接收参数,但返回结构,主要方法为 T get()
Predicate: 接收参数,返回boolean值,主要方法为 boolean test(T t)
Function用法
public class Test {
public static String getCode(long value, String key, Function<Long, String> func) {
System.out.println("执行方法前");
String maxCode = func.apply(value);
System.out.println("执行方法后:" + maxCode);
return String.valueOf("结束");
}
public static String msg(long value, long value2) {
System.out.println("执行方法" + "value = " + value + ", value2 = " + value2);
return String.valueOf(value + value2);
}
public static void main(String[] args) {
getCode(1L, "keys", orgId -> msg(1, orgId));
}
}
扩招用法
@Service
public classTestService {
@Autowired
private Test1Service test1lService;
public void functionTest() {
Test.getCode(1, "test", value -> test1lService.msg(1, value));
}
}