package com.tong;
/**
* 无返回值,无参数
*/
@FunctionalInterface
interface NoReturnNoParam{
void method();
}
/**
* 无返回值,有一个参数
*/
@FunctionalInterface
interface NoReturnOneParam{
void method(int a);
}
/**
* 无返回值,有多个参数
*/
@FunctionalInterface
interface NoReturnMultiParam{
void method(int a,int b);
}
/**
* 有返回值,无参数
*/
@FunctionalInterface
interface ReturnNoParam{
int method();
}
/**
* 有返回值,有一个参数
*/
@FunctionalInterface
interface ReturnOneParam{
int method(int a);
}
/**
* 有返回值,有多个参数
*/
@FunctionalInterface
interface ReturnMultiParam{
int method(int a ,int b);
}
public class Test {
public static void main(String[] args) {
/**
* 无返回值,无参数
*/
/* NoReturnNoParam noReturnNoParam= ()->{
System.out.println("NoReturnNoParam");
};*/
/**
* 简化版
*/
NoReturnNoParam noReturnNoParam=()-> System.out.println("NoReturnNoParam");
noReturnNoParam.method();
/**
* 无返回值,有一个参数
*/
/* NoReturnOneParam noReturnOneParam = (int a)->{
System.out.println("NoReturnOneParam "+a);
};*/
/**
* 简化版
*/
NoReturnOneParam noReturnOneParam = a -> System.out.println("NoReturnOneParam "+a);
noReturnOneParam.method(10);
/**
* 无返回值,有多个参数
*/
/* NoReturnMultiParam noReturnMultiParam= (int a,int b)->{
System.out.println("NoReturnMultiParam "+a+"\t"+b);
};*/
/**
* 简化版
*/
NoReturnMultiParam noReturnMultiParam=(a,b)->System.out.println("NoReturnMultiParam "+a+"\t"+b);
noReturnMultiParam.method(10,20);
/**
* 有返回值,无参数
*/
/* ReturnNoParam returnNoParam = ()->{
System.out.print("ReturnNoParam ");
return 10;
};*/
/**
* 简化版
*/
ReturnNoParam returnNoParam =()->10;
System.out.println(returnNoParam.method());
/**
* 有返回值,有一个参数
*/
/*ReturnOneParam returnOneParam = (int a)->{
System.out.print("ReturnOneParam ");
return a;
};*/
/**
* 简化版
*/
ReturnOneParam returnOneParam = a -> a;
System.out.println(returnOneParam.method(10));
/**
* 有返回值,有多个参数
*/
/*ReturnMultiParam returnMultiParam = (int a,int b)->{
System.out.print("ReturnMultiParam ");
return a+b;
};*/
/**
* 简化版
*/
ReturnMultiParam returnMultiParam = (a,b) -> a+b;
System.out.println(returnMultiParam.method(10,20));
}
public static int doubleNum(int a){
return 2*a;
}
public int addTwo(int a){
return a+2;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java函数式编程是指利用函数式编程的思想和特性来开发Java应用程序。函数式编程强调将计算过程视为数学函数的求值,侧重于函数的组合、映射、过滤等操作,同时避免了可变状态和可变数据。 在Java中,函数式编程主要是通过Java 8引入的Lambda表达式和Stream API来实现的。Lambda表达式使得Java可以支持以更简洁的方式定义匿名函数,从而能够更方便地进行函数式编程风格的编程。Stream API 则提供了对集合数据进行流式操作的功能,包括过滤、映射、归约等。 函数式编程的特点包括: 高阶函数:函数作为一等公民,可以作为参数传递、返回值返回。在Java中,通过Lambda表达式,可以很方便地传递函数作为方法参数。 不可变性:倡导使用不可变对象和不可变数据结构,避免副作用和状态的改变。 纯函数:函数没有副作用,对于相同的输入始终产生相同的输出,不依赖外部状态。 惰性求值:延迟计算,只有在需要时才进行计算,这也是Stream API的特点之一。 函数式编程在Java中的应用可以带来许多好处,包括代码简洁、易于并发编程、函数复用性高等。另外,函数式编程也与并行计算
资源推荐
资源详情
资源评论
收起资源包目录
函数式编程.rar (21个子文件)
函数式编程
lambdademo
lambdademo.iml 559B
src
com
tong
Test5.java 627B
Test6.java 568B
Test9.java 445B
Test8.java 1KB
Test2.java 424B
Test10.java 727B
Test7.java 1KB
Test4.java 242B
Test.java 3KB
Test3.java 616B
.idea
uiDesigner.xml 9KB
checkstyleidea.tmp
qaplug_profiles.xml 41KB
runConfigurations.xml 346B
workspace.xml 5KB
misc.xml 624B
inspectionProfiles
Project_Default.xml 1KB
checkstyle-idea.xml 626B
modules.xml 267B
.gitignore 0B
aws.xml 304B
共 21 条
- 1
资源评论
童小纯
- 粉丝: 3w+
- 资源: 289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功