没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Java8简明教程
原文:Java8Tutorial
译者:ImportNew.com-黄小非
来源:Java8简明教程
“Java并没有没落,人们很快就会发现这一点”
欢迎阅读我编写的Java8介绍。本教程将带领你一步一步地认识这门语言的新特
性。通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表
达式,方法引用和重复注解。看完这篇教程后,你还将对最新推出的API有一定的
了解,例如:流控制,函数式接口,map扩展和新的时间日期API等等。
允许在接口中有默认方法实现
Java8允许我们使用default关键字,为接口声明添加非抽象的方法实现。这个特性
又被称为扩展方法。下面是我们的第一个例子:
interfaceFormula{
doublecalculate(inta);
defaultdoublesqrt(inta){
returnMath.sqrt(a);
}
}
在接口Formula中,除了抽象方法caculate以外,还定义了一个默认方法sqrt。
Formula的实现类只需要实现抽象方法caculate就可以了。默认方法sqrt可以直接使
用。
Formulaformula=newFormula(){
@Override
publicdoublecalculate(inta){
returnsqrt(a*100);
}
};
formula.calculate(100);//100.0
formula.sqrt(16);//4.0
Java8简明教程
4
formula对象以匿名对象的形式实现了Formula接口。代码很啰嗦:用了6行代码才
实现了一个简单的计算功能:a*100开平方根。我们在下一节会看到,Java8还有
一种更加优美的方法,能够实现包含单个函数的对象。
Lambda表达式
让我们从最简单的例子开始,来学习如何对一个string列表进行排序。我们首先使
用Java8之前的方法来实现:
List<String>names=Arrays.asList("peter","anna","mike","xen
ia");
Collections.sort(names,newComparator<String>(){
@Override
publicintcompare(Stringa,Stringb){
returnb.compareTo(a);
}
});
静态工具方法Collections.sort接受一个list,和一个Comparator接口作为输入参数,
Comparator的实现类可以对输入的list中的元素进行比较。通常情况下,你可以直
接用创建匿名Comparator对象,并把它作为参数传递给sort方法。
除了创建匿名对象以外,Java8还提供了一种更简洁的方式,Lambda表达式。
Collections.sort(names,(Stringa,Stringb)->{
returnb.compareTo(a);
});
你可以看到,这段代码就比之前的更加简短和易读。但是,它还可以更加简短:
Collections.sort(names,(Stringa,Stringb)->b.compareTo(a));
只要一行代码,包含了方法体。你甚至可以连大括号对{}和return关键字都省略不
要。不过这还不是最短的写法:
Collections.sort(names,(a,b)->b.compareTo(a));
Java编译器能够自动识别参数的类型,所以你就可以省略掉类型不写。让我们再深
入地研究一下lambda表达式的威力吧。
函数式接口
Java8简明教程
5
剩余97页未读,继续阅读
资源评论
SpanishAthlete
- 粉丝: 2
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功