紧随时代的步伐--Java8之Lambda表达式的使用
1、前言
在计算机行业,每天都会有新的技术诞生,每天都会有上百种的技术更新升级。追随时代的步伐,终生学习,才能不被社会的浪潮淘汰。
2、关于Lambda表达式
Lambda表达式是Java8新特性之一,它使得Java编程变得更加抽象,更加理性。同时也意味着代码的可读性下降。在日常的开发中,不建议使用Lambda表达式编程。
3、抽象接口
@FunctionalInterface
public interface MyNumber<T> {
//double getValue();
//boolean test(int n);
//int fun(int n);
T funstr(T t);
}
在接口处加入注解,表明该接口为函数式接口,当中定义为泛型T,方法返回泛型T。参数可以也是泛型T,也可以是与返回值不同数据类型的泛型F
4、实现类
public class Test6 {
public static void main(String[] args) {
MyNumber<String> myNumber=(str)->{
String result="";
for(int i=str.length()-1;i>=0;i--){
result+=str.charAt(i);
}
return result;
};
System.out.println(myNumber.funstr("ABC"));
MyNumber<Integer> myNumber2=(n)->{
int i=0;
do{
i+=1;
n+=i;
}while(i<10);
return n;
};
System.out.println(myNumber2.funstr(10));
}
}
在新建的MyNumber接口中可以是String类型,也可以是Integer类型。右边括号str、n为入参。通过->符号和一个大括号,编写接口的实现代码。
从上述可以看出,业务逻辑代码与接口的实现代码夹杂在一起,不利于模块化,也是不建议实际开发中使用的原因之一。
Reference:
[1] Herbert Schildt, 战晓苏 江凌(译), Java 8 编程参考官方教程(第9版), 清华大学出版社, 385-416
紧随时代的步伐--Java8之Lambda表达式的使用的更多相关文章
- 紧随时代的步伐--Java8特性之接口默认方法
1.关于Java8 自从1996年Sun公司发布Java以来,Java到目前为止已经走过21个年头,每一次的升级,都是Java语言的革新,对时代发展的适应.2014年Oracle发布Java8,而据可 ...
- Java8中Lambda表达式的10个例子
Java8中Lambda表达式的10个例子 例1 用Lambda表达式实现Runnable接口 //Before Java 8: new Thread(new Runnable() { @Overri ...
- java8的lambda表达式,将List<DTO> 转为 List<DO>
将List<PhoneDTO>转为List<PhoneDO>,通过java8的lambda表达式来操作,比传统的for循环精简很多: /** * List<PhoneDT ...
- java8的lambda表达式
关于java8的lambda表达式 lambda表达式一般用于接口,因为lambda表达式是函数式编程. 1.有且仅有一个抽象方法被称为函数式接口,函数式接口可以显示的被@FunctionalInte ...
- java8之lambda表达式&方法引用(一)
本文将简单的介绍一下Lambda表达式和方法引用,这也是Java8的重要更新,Lambda表达式和方法引用最主要的功能是为流(专门负责迭代数据的集合)服务. 什么是lambda表达式 可以把lambd ...
- java8中lambda表达式的应用,以及一些泛型相关
语法部分就不写了,我们直接抛出一个实际问题,看看java8的这些新特性究竟能给我们带来哪些便利 顺带用到一些泛型编程,一切都是为了简化代码 场景: 一个数据类,用于记录职工信息 public clas ...
- java8之lambda表达式(1)-基本语法
lambda表达式,即带有参数的表达式,为更清晰地理解lambda表达式,先看如下例子: (1) class Student{ private String name; private Double ...
- java8之lambda表达式入门
1.基本介绍 lambda表达式,即带有参数的表达式,为了更清晰地理解lambda表达式,先上代码: 1.1 两种方式的对比 1.1.1 方式1-匿名内部类 class Student{ privat ...
- JAVA8之lambda表达式具体解释,及stream中的lambda使用
前言: 本人也是学习lambda不久,可能有些地方描写叙述有误,还请大家谅解及指正! lambda表达式具体解释 一.问题 1.什么是lambda表达式? 2.lambda表达式用来干什么的? 3.l ...
随机推荐
- 【CF285E】Positions in Permutations(动态规划,容斥)
[CF285E]Positions in Permutations(动态规划,容斥) 题面 CF 洛谷 题解 首先发现恰好很不好算,所以转成至少,这样子只需要确定完一部分数之后剩下随意补. 然后套一个 ...
- js、jscore与webkit、nodejs的关系
js:编程语言 jscore:js语言的解释执行引擎,代表cpu: webkit.nodejs:js语言的运行平台,代表操作系统.计算机资源.
- ipxe(可选):winboot:网络引导(启动)wim格式的windows PE系统:配置文件写法
ipxe 无盘[网络]引导wim格式的pe系统 wimboot引导程序需要为其提供4个内核参数 bcd bootmgr boot.sdi boot.wim 所需文件附件 以下是我的可用的ipxe的配置 ...
- 【java】java反射获取属性和属性值,java反射设置属性和属性值
今日份代码如下: /** * * @Author: SXD * @Description: * @Date: create in 2019/9/20 15:39 */ public class Pro ...
- 离散数学交并补运算、差运算、异或运算的实现--biaobiao88
对集合的交并补运算.差运算及异或运算的代码,可输入字符与数字,内容简单,详情请看以下代码 #include<iostream> using namespace std; int main( ...
- Python学习笔记之try-except
Python使用被称为异常的特殊对象来管理程序执行期间发生的错误.每当发生让Python不知所措的错误时,它都会创建一个异常对象.如果你编写了处理该异常的代码,程序将继续运行:如果你未对异常进行处理, ...
- 用SWFUpload上传图片小例子
在开发项目中,经常会用到上传图片,接下来我就用一种简单的方式给大家分享一下使用SWFUpload的方式上传图片. 1.在网站根目录下新建一个SWFUpload文件夹,把下载的组建放在SWFUpload ...
- 扒一扒那些年我们console过的那些事儿
今天无意间打开百度发现,百度里面有下面这个东西,煞是好奇,原来console.log()不只是我们常用的那个console.log(). console.log("%c百度2019校园招聘简 ...
- FileZilla_Server:425 Can't open data connection 问题解决
25 Can't open data connection 和 读取目录列表失败 问题解决 这个问题主要是由于使用Passive Mode模式造成的,解决这个问题很简单:1.在ftp服务软件中设置指定 ...
- python基础-面向对象编程之组合
面向对象编程之组合 定义:一个对象中拥有另一个或其他多个对象的属性和方法. 作用:减少代码的冗余,降低耦合度 关于耦合度的说明 耦合:通俗地讲,就是相互作用,相互影响的意思 耦合度越高,程序的可扩展性 ...