Java 8的五大开发技巧

转载:http://geek.csdn.net/news/detail/94219

在Java 9发布之前,我们来分享一些Java 8开发技巧,本文翻译自JetBrains高级开发主管Trisha Geed的Java 8 Top Tips。

【以下为译文】

在使用JAVA 8进行开发多年后,结合个人使用IntelliJ IDEA的心得,我总结了以下几个JAVA8技巧供大家参考。

Optional

Optional 是一个被高度低估的特性,假若能把它运用恰当,其实它是能帮助减少大量的NullPointerExceptions(无效指针)错误的。以下是有关Optional使用的两个要点:

  • Optional应只用于返回类型而不是参数或域

如果你尝试这样处理,IntelliJ IDEA将会作出如下提示:

  • 避免使用调用的get()

Optional的强项是表达空值并让你对此做出处理。所以在进行下一步前进行值检查是很重要的。幸好IntelliJ IDEA也会对出做出提示:

取而代之,可以尝试使用orElse或orElseGet。

Lambda表达式的使用

Lambda是Java 8的又一个亮点,以下是有关Lambda的使用技巧:

  • 尽量简单

化繁为简是正确使用lambda表达式的关键。你可以把它们简化为单独一行,也可以在方法中重构更复杂的表达式。

  • 清晰明了

由于lambda表达式欠缺类型信息,所以有时会把类型信息放入参数中:

这未免过于冗长了,怎么办?我更倾向于为参数起个有意义的名字。例如:

Lambda表达式的设计

虽然我们较少会以lambda为参数来创建一个方法,但是如果有这样的需求,该如何处理呢?

  • IntelliJ IDEA能帮助实现函数型参数

  • 为你的函数性接口添加@FunctionalInterface

如果你需要自定义函数性接口,那么IntelliJ IDEA将会成为很好的监督者: 
覆盖提示:

重复声明:

为类而不是接口进行定义:

Streams(流)

Stream API是Java8新引入的,使用它有哪些地方注意的呢?

  • 有序排列

  • 使用方法引用

  • 进行集合递归时,尽量使用Streams API

请对比下列两段代码:

在数组循环中使用for循环

在元数据类型数组中使用for循环,将会得到最好的性能表现:

小结

我每天都在寻找新方法,尝试新思路,希望能不断完善个人编程的最佳实践。

时间: 2024-10-07 11:22:52

Java 8的五大开发技巧的相关文章

【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序

本技巧建立了一个使用统一描述.发现和集成 (Universal Description, Discovery, and Integration,UDDI) 来注册应用程序级消费的 Web 服务实例.作者提供了详细的代码示例以及基于 Java 的统一描述.发现和集成 (Universal Description, Discovery,and Integration for Java,UDDI4J) API 的扩展 API,通过这些可以使您使用 UDDI 来进行您自己的开发. 0 评论: Andre

阿里云部署Java网站和微信开发调试心得技巧(上)

阿里云部署Java网站和微信开发调试心得技巧(上)本篇手记旨在帮助大家从0开始: 申请阿里云服务器 搭建出程序的执行环境 在服务器上发布并运行自己的web project 域名解析 微信测试号的申请与连接以获取微信用户信息全篇文章主要以如何去完成目标为主,因此会以流程的形式来展现,细节方面需要大家多多思考.其中文章的上集实现了1-4,文章的下集实现了5一.申请阿里云服务器(1)PC访问阿里云https://www.aliyun.com/,申请阿里云帐号(可以用您的支付宝帐号登录,因为支付宝帐号已

【Eclipse】eclipse调试java程序的九个技巧

本文转自[半夜乱弹琴],原文地址:http://www.cnblogs.com/lingiu/p/3802391.html 九个技巧: 逻辑结构 条件debug 异常断点 单步过滤 跳到帧 Inspect expressions display 远程debug 最早开始用eclipse的debug的时候,只会F5 F6 F7 F8,甚至F7都不是很搞的明白是怎么用的,那时候资浅,碰不到需要复杂debug的代码,慢慢工作深入了,场景碰多了,就需要各种debug技巧来提升定位bug效率,以前找人帮忙

webApp前端开发技巧

自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程序,运行在高端的移动终端设备). 开发者们都知道在高端智能手机系统中有两种应用程序:一种是基于本地(操作系统)运行的APP:一种是基于高端机的浏览器运行的WebApp,本文将主要讲解后者. WebApp与Native App有何区别呢? Native App: 1.开发成本非常大.一般使用的开发语言为JAVA.C++.Objective-C. 2.更新体验较差

使用Eclipse调试Java 程序的10个技巧

你应该看过一些如<关于调试的N件事>这类很流行的帖子 .假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间.由于这个原因,用这些时间来重视并了解所有使我们调试更方便的功能. 那能为你省下一些时间,也将会使你的生活更安逸.轻松.同时也表明其它关于此主题的帖子也是很有价值的. 第1条:不要调试太多 一个关于调试的疯狂声明作为开头.但它必须是要说的!尝试切分一下你那复杂的逻辑成多个独立的单元,并编写单元测试来检测你代码的正确性.我想像如下 这样的流程应该是发生得非常频繁的-

Android开发技巧——自定义控件之自定义属性

Android开发技巧--自定义控件之自定义属性 掌握自定义控件是很重要的,因为通过自定义控件,能够:解决UI问题,优化布局性能,简化布局代码. 上一篇讲了如何通过xml把几个控件组织起来,并继承某个ViewGroup子类,把它们封装起来使用.这是我们接触到的最简单的一种自定制控件了.但许多时候,我们还需要在布局文件中使用它们的时候,能通过属性传入一些值,来影响最终的显示结果. 我们在做项目中经常会遇到的一个情况:一张图片加一个文本的组合.比如充值账户成功之后显示的一个界面,上面是一个表示成功的

WebApp开发技巧大全 看了就明白了

[转载]阅读原文 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程 序,运行在高端的移动终端设备).开发者们都知道在高端智能手机系统中有两种应用程序:一种是基于本地(操作系统)运行的APP:一种是基于高端机的浏览 器运行的WebApp [NativeApp与WebApp的比较] NativeApp 1.开发成本非常大.一般使用的开发语言为JAVA.C++.Objective-C. 2.更新体验较差.同时也比

Android开发技巧——大图裁剪

本篇内容是接上篇<Android开发技巧--定制仿微信图片裁剪控件> 的,先简单介绍对上篇所封装的裁剪控件的使用,再详细说明如何使用它进行大图裁剪,包括对旋转图片的裁剪. 裁剪控件的简单使用 XML代码 使用如普通控件一样,首先在布局文件里包含该控件: <com.githang.clipimage.ClipImageView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+i

JAVA与图形界面开发(Applet应用程序、AWT库、Swing)

Applet 1)简单说,Applet就是嵌入到网页中的小程序,Java代码. 2)编写Applet程序,要继承JApplet类,并根据自己需要覆写相关方法(init.start.stop.destroy<可选>)即可. 3)Applet生命周期: 初始化阶段:init方法(自动被调用,完成图形组件的初始化和版面分配) 执行阶段:start方法(当Applet当前窗口被激活时,执行相应代码) 终止阶段:stop方法(关闭Applet程序时) 释放资源:destroy方法 4)向Applet里添