紧随时代的步伐--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 ...
随机推荐
- 【POI】java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上
场景: java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上 今日份代码: 1.先是一个变量,作为文件名 private static final String ...
- JAVA设计模式工厂模式
工厂模式: – 实现了创建者和调用者的分离. – 详细分类: • 简单工厂模式 • 工厂方法模式 • 抽象工厂模式• 面向对象设计的基本原则: – OCP(开闭原则,Open-Closed Princ ...
- Linux 监控之 IO
简单介绍下 Linux 中与 IO 相关的内容. 简介 可以通过如下命令查看与 IO 相关的系统信息. # tune2fs -l /dev/sda7 ← 读取superblock信息 # blockd ...
- 3-awk
1.输出双引号:awk '{print "\""}' #放大:awk '{print " \" "}'使用“”双引号把一个 ...
- JS的数组进行切片slice
代码 var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thoma ...
- Eureka客户端续约及服务端过期租约清理源码解析
在之前的文章:EurekaClient自动装配及启动流程解析中,我们提到了在构造DiscoveryClient时除了包含注册流程之外,还调度了一个心跳线程: scheduler.schedule( n ...
- B端产品经理的金字塔能力模型
工作这几年,时长思考,作为B端产品经理自己应该具备什么样的能力? 虽然工作依旧在有条不紊的进行,但是时常会陷入到对知识或者能力的焦虑当中.特别时是工作三五年,产品经理进阶门槛时. 虽然产品经理的能力是 ...
- nginx常用伪静态设置
nginx里使用伪静态是直接在nginx.conf 中写规则的,并不需要像apache要开启写模块(mod_rewrite)才能进行伪静态. nginx只需要打开nginx.conf配置文件,在ser ...
- properties文件属性值@Value注解为 java entity属性赋值
一.使用@Value为 java entity类中的非static属性赋值 举个栗子,一目了然 1.1 properties文件 1.2 servlet.xml 文件增加的配置: 1.2.1 serv ...
- 手写xpath定位公式
做web自动化,之前我们已经将环境搭建好了,现在的话总结下怎么定位元素的 最基本的元素定位是有6种: driver.find_element_by_id("") driver.fi ...