Java函数式编程-之-函数式接口
程序员文章站
2022-04-15 23:39:57
package cn.t02;/** * 函数式接口: * 函数式接口即适用于函数式编程场景的接口,在Java中函数式编程的体现是Lambda. * 因此函数式接口可以适用于Lambda使用的接口. * 只有在确保接口中有且只有一个抽象方法时,Java中的Lambda才能顺利的推导! * * 语法糖:语法糖是指使用更加方便,但是原理不变的代码语法. * 例如:集合遍历使用的for-Each语法,其底层实现原理是迭代器. * 那for-Each对于迭代循环代码来说就是他的语法糖! *....
package cn.t02;
/**
* 函数式接口:
* 函数式接口即适用于函数式编程场景的接口,在Java中函数式编程的体现是Lambda.
* 因此函数式接口可以适用于Lambda使用的接口.
* 只有在确保接口中有且只有一个抽象方法时,Java中的Lambda才能顺利的推导!
*
* 语法糖:语法糖是指使用更加方便,但是原理不变的代码语法.
* 例如:集合遍历使用的for-Each语法,其底层实现原理是迭代器.
* 那for-Each对于迭代循环代码来说就是他的语法糖!
*
* 而Lambda在应用层面来看,可以把其当作匿名内部类的语法糖.(二者原理上不一样)
*
* @FunctionalInterface:
* 为了保证接口中有且只有一个抽象方法,Java中提供了一个用来验证的注解;
* 一旦在接口上标注了@FunctionalInterface,编译器就会强制检查接口是否有且只有一个
* 抽象方法,否则就会报错.
*
* 需要注意:即使不使用@FunctionalInterface注解,只要满足函数式接口的定义,就仍然是
* 一个函数式接口,使用起来效果是一样的!
*
*/
@FunctionalInterface
public interface FunctionGo {
/**
* 接口中抽象方法的public abstract可以省略!
*/
void gooing();
}
/**
* 外部类:
* 用来临时测试!
*/
class Test {
/**
* 调用自定义函数式接口:
* 最典型的方法就是将其作为方法参数;
*
* 使用自定义的函数式接口作为方法参数!
* @param fg
*/
private static void goining(FunctionGo fg) {
// 调用自定义函数式接口的方法!
fg.gooing();
}
/**
* Java主函数|入口!
* @param args
*/
public static void main(String[] args) {
/**
* 调用使用函数式接口的方法;
*/
goining(() -> {
System.out.println("123");
System.out.println(888);
});
}
}
本文地址:https://blog.csdn.net/dalei9243/article/details/107336811
推荐阅读
-
函数式编程语言有哪些(程序员常用的编程语言介绍)
-
JavaScript函数式编程究竟是什么?
-
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
-
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
-
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
-
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
-
函数式编程语言有哪些(程序员常用的编程语言介绍)
-
实例讲解python函数式编程
-
利用Fn.py库在Python中进行函数式编程
-
函数式编程入门实践(一)