java函数式编程
2021-09-15 14:28:02 0 举报
AI智能生成
登录查看完整内容
java函数式编程
作者其他创作
大纲/内容
java函数式编程
详解
概念
什么是函数式编程?
函数式编程是一种编程的方法论,主要是将行为编写成一个个的函数。
什么是函数?
函数就是对输入的值进行处理,返回另外的值。
什么是Lambda表达式?
在Java 8 中引入的Labmda表达式是函数式编程的一种实现。
实现
@FunctionalInterface函数式接口
定义
接口有且仅有一个抽象方法
接口允许定义静态方法
接口允许定义默认方法
接口允许java.lang.Object中的public方法
JDK自带了一些有用的函数式接口
java.lang.Runnable
java.awt.event.ActionListener
java.util.Comparator
java.util.concurrent.Callable
java.util.function包下的接口,如Consumer、Predicate、Supplier等
实现方式
匿名内部类实现方式
Thread thread2 = new Thread(new Runnable() { @Override public void run() { System.out.println(\"我也是runnable实例\"); } });
Lambda表达式实现方式
Thread thread1 = new Thread(() -> System.out.println(\"我是runnable实例\"));
Lambda表达式
格式
parameter(参数) -> expression body(函数主体)
不包含参数的格式
Runnable noArguments = () -> System.out.println(\"Hello World\");
只包含一个参数,并可以省略括号
ActionListener oneArgument = event -> System.out.println(\"button clicked\");
Lambda的主体是一段代码块
Runnable multiStatement = () -> { System.out.print(\"Hello\"); System.out.println(\" World\"); };
多个参数
显式指定参数的类型
方法引用
List<String> list = new ArrayList<>(); list.add(\"张三\"); list.add(\"李四\"); list.add(\"王五\"); list.add(\"猴六\"); list.stream().forEach(System.out::println);
有三种方法可以被引用
静态方法
实例方法
使用new的构造函数方法如:(TreeSet::new)
扩展
泛型
Funciton.java
从apply方法可以看出,泛型类声明的T、R分别表示apply方法的入参和返参的类型
1、before的入参为V,返参T
2、apply方法入参T,返参R
除了编写stream或一些jdk自带的函数式接口时用的函数式编程,在写其他代码时,怎样函数式编程?
哈哈,完整的写法还没有实践过,应该是需要和链式编程结合起来更加完美,写了一个例子
一些简单的例子
0 条评论
回复 删除
下一页