现代化Java代码的七个NetBeans提示

在“ 七个不可或缺的NetBeans Java提示”一文中 ,我谈到了一般使用NetBeans提示的问题,然后重点介绍了七个提示。 接下来列出了该帖子中强调的七个提示:
  • 可疑方法调用
  • 使用==或!= AND字符串构造函数比较字符串
  • 构造函数中的可重写方法调用
  • .equals不兼容类型
  • ResultSet中的列索引不正确
  • 与instanceof不兼容
  • 生成.equals或.hashCode方法

在本文中,我着眼于一组不同的七个NetBeans提示,这些提示可能不像第一组那样“不可或缺”,但是我发现它们对于移动现有代码和我自己的用Java编写代码的心态非常有用。进入JDK 7时代。NetBeans6.9开始引入了许多新提示 ,我非常喜欢这些提示 ,以便逐步改进JDK 7的性能和安全性。

建议EnumMap和EnumSet

NetBeans 6.9在“性能”类别中引入的两个提示是“可被EnumMap替换的地图”(在NetBeans Java提示中描述为“可被EnumMap替换的地图的实例化”)和“设置可被EnumSet替换”。 (描述为“查找可以用EnumSet替换的Set的实例化”)。 关于使用EnumMap和EnumSet的优点,我之前已经发布过 ,因此在使用现有代码时,我发现它们是两个非常有用的提示。 尽管从J2SE 5开始 , Enum以及关联的EnumMap和EnumSet都已存在,但是可能存在一些未使用它们的代码库,因为代码较旧,或者因为开发人员在创建其地图或集合时没有想到它们。

下一系列快照以静态方式演示了这些提示如何识别EnumSet和EnumMap可能更有效的潜在情况。 第一张图片显示了使用EnumSet的提示示例。 第二到第四幅图像演示了使用EnumMap的提示以及选择要应用EnumMap的操作以及该操作的结果。

JDK 7升级提示

NetBeans 7.x在提示的“ JDK 1.5及更高版本”类别中提供了一些与Java 7语法和语言支持有关的提示。 这些提示提供了更多有关NetBeans提示可以帮助将现有Java代码库带入JDK的最新版本的示例。 这里要注意的一件事是,只有与NetBeans项目关联的源版本是JDK 7(1.7)时,NetBeans才会识别这些提示。

与JDK 7相关的两个NetBeans提示与捕获异常有关。 “使用多捕获来加入捕获部分”提示(“使用多捕获来结合捕获部分”)和“使用特定捕获”提示(“将捕获(可抛出)或捕获(异常)转换为多捕获以捕获由try主体抛出的异常”。 ”)是在NetBeans 7.0中引入的。

后面的三个屏幕快照显示了一个非常复杂的代码段,该段代码确实演示了“使用多重捕获加入捕获”部分。 这三个图像显示了提示的显示,选择应用提示以及应用提示的结果。

NetBeans中与JDK 7相关的另一个异常处理提示是“使用特定的捕获提示”。 捕获比Exception (或更普通的Throwable )更具体的异常的想法在JDK 7中并不陌生,但这是一个依赖于JDK 7的提示,因为它在执行JDK 7 multicatch时会放置多个特定的已检查异常 。转换。 实际上,如果只有一个已知的已检查异常比Exception或Throwable更具体,则提示不适用。 出于明显的原因(毕竟不检查!),不会考虑运行时异常( 未检查的异常 ),并且只有try子句中存在多个检查的异常才会导致此提示。

以下屏幕快照描述了所有这些。 第一个屏幕快照描述了出现的提示,因为try块中可能有两个已检查的异常。 第二张图片证明,一个已检查的异常的存在不足以使提示出现(其中一个已被注释掉)。 第三幅图显示了再次适用的已检查异常以及如何选择要执行的操作。 第四幅图描绘了接受提示的建议操作的结果:将常规Exception更改为具有可能遇到的两个特定已检查异常的多重捕获。

NetBeans 6.9引入了“尽可能使用字符串转换”。 提示(“标记可转换为切换字符串的ifs级联。”)。 这使开发人员可以更轻松地识别基于String的一系列条件,可以将其重构为使用JDK 7 对Strings的支持。 接下来的三个屏幕快照演示了此提示的提供,应用提示的能力以及应用提示的结果。

JDK 7引入了菱形语法,以更简洁地使用泛型。 NetBeans 7.1引入了提示“可以使用钻石”(被描述为“关于可以在JDK 7中使用钻石运算符代替显式类型参数的位置的警告”),以帮助迁移代码以使用这种更简洁的语法。 接下来的三个屏幕快照显示了提示的显示方式,单击提示可以执行的操作以及执行该操作的结果。

NetBeans 7.0引入的“转换为尝试资源”提示(“将最终转换为尝试转换为资源”)提示帮助开发人员确定使用新的尝试资源的便捷安全方法可以解决的情况被应用。

接下来的四个图像描述了NetBeans中“转换为尝试资源”提示的用法。 第一个屏幕快照显示,如果首先在有条件的非空状态下检查资源,则不会出现提示。 第二张图显示,删除资源上的条件会导致出现提示。 第三个屏幕快照显示了提示以应用与提示关联的操作,第四个图像显示了应用提示的结果。 这些快照中的示例改编自Java教程页面try-with-resources Statement中提供的示例。 NetBeans将该教程中提供的try-finally(在这种情况下为catch)示例转换为该教程中所示的try-with-resources示例。

升级到NetBeans 7.1,以获得最新和最佳的提示支持

我将NetBeans 7.1和NetBeans 7.1.1用于本文中显示的屏幕快照。 尽管这里没有介绍,但NetBeans 7.1的一个有趣的提示相关功能是创建自定义提示的功能 。

结论

这篇博客文章涵盖了七个NetBeans提示,可帮助开发人员利用Java的新功能(特别是JDK 7)。 启用这些提示(包括将NetBeans项目与JDK 7关联)使开发人员能够快速识别可以在将编译器升级到JDK 7时进行现代化处理的旧代码段,还可以帮助开发人员学习使用这些新的构造和功能编写新代码。 。 这篇文章涵盖的提示是:

  • 地图可替换为EnumMap
  • 设置可替换为EnumSet
  • 使用多重捕捉加入捕捉部分
  • 使用特定的渔获
  • 尽可能使用切换字符串
  • 可以使用钻石
  • 转换为尝试资源

参考:来自JCG合作伙伴 Dustin Marx在Inspired by Actual Events博客上的七个Java现代化NetBeans提示 。


翻译自: https://www.javacodegeeks.com/2012/04/seven-netbeans-hints-for-modernizing.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机屏幕宽高像素计算_2020年的智能手机拍照新设计,就全看下半年了

此前我们三易生活在总结2019年智能手机影像设计的变化时曾经提到,智能手机上的大底与大像素设计几乎是花了一整年的时间,把自己从单纯的噱头,逐步改进成了能够确实提高拍照画质的业界主流技术。站在现在的视角来看,2019年这阵“高…

yield方法释放锁吗_死磕Synchronized底层实现重量级锁

点击上方“Java知音”,选择“置顶公众号”技术文章第一时间送达!作者:farmerjohngit链接:https://github.com/farmerjohngit本文为死磕Synchronized底层实现第四篇文章,内容为重量级锁实现。本系列文章将对HotSpot的sy…

Java应用程序上的Twitter API

是否曾想过将推文附加到Java应用程序? 我为此寻找了最好的API,很幸运,我找到了它! http://twitter4j.org/ 一个简单的方法: 我们需要做的第一件事是在您的Twitter帐户中创建一个应用程序,为其授予访问权限…

MongoDB学习1——Windows 下配置及启动mongodb服务器

1.下载mongodb程序:http://lt1.cr173.com/soft2/mongodb.zip 2.解压程序3.在解压后的mongodb文件夹中创建 data、logs、conf文件夹4.编写配置文件conf\mongod.conf#端口号 port 12345 #数据库路径,也可以使用绝对路径 dbpath data #日志路径&#xff0…

JavaFX 2.0条形图和散点图(以及JavaFX 2.1 StackedBarCharts)

JavaFX 2.0提供了用于生成图表的内置功能,该功能可在javafx.scene.chart包中找到。 在本文中,我将介绍如何使用JavaFX 2.0创建条形图和散点图 。 在本文的学习过程中,我将一路使用Guava和一些Java 7功能。 在演示JavaFX 2.0图表API之前&#…

python中下划线开头的命名_Python 中各种下划线的骚操作:_、_xx、xx_、__xx、__xx__、_classname_...

我们在定义一些变量或者方法的时候,常常会用到下划线,在 Python 中,下划线可是很有用处的哟,比如变量,有些是一个下划线开头的(_xx),有些是两个下划线开头的(__xx),有些是在名称的结尾添加下划线…

MongoDB学习2——Windows 使用mongo连接数据库

一、查看mongo帮助文档mongo.exe --help二、使用mongo 连接服务器mongo.exe 数据库地址:数据库端口号/数据库关闭服务器db.shutdownServer()注:关闭数据必须使用admin数据库权限

【UVA 10816】 Travel in Desert (最小瓶颈树+最短路)

【题意】 有n个绿洲, m条道路,每条路上有一个温度,和一个路程长度,从绿洲s到绿洲t,求一条道路的最高温度尽量小, 如果有多条, 选一条总路程最短的。 InputInput consists of several test cases…

联想小新air14笔记本黑屏_联想小新air14锐龙版测评,谈谈它的好和坏

联想小新air14锐龙版本测评了解数码就找小侠客,我是机圈小侠客 今天呢,主要和大家测评一下联想小新air14这款笔记本,总体而言的话,这款笔记本它是一个。对于办公人士或者轻度游戏爱好者来说的话,是一个不错的选择&…

Java入门:Java下载与安装方法

本文适合刚入门的Java编程的初学者阅读。 JDK有两种下载方法,一个是官网下载,另一个是第三方网站下载。官网速度也许有点慢,慢的话可以考虑去第三方网站下载。 一、官网下载 1. 访问地址:http://www.oracle.com/cn/downloads/inde…

Java 7:如何编写非常快速的Java代码

当我第一次写此博客时,我的目的是向您介绍ThreadLocalRandom类,它是Java 7中新增的用于生成随机数的类。 我已在一系列微基准测试中分析了ThreadLocalRandom的性能,以了解其在单线程环境中的性能。 结果相对令人惊讶:尽管代码非常…

[地图开发][算法及数据结构]四叉树原理

参考:http://blog.csdn.net/zhouxuguang236/article/details/12312099 原博客地址还有c++源码。。。 四叉树索引的基本思想是将地理空间递归划分为不同层次的树结构。它将已知范围的空间等分成四个相等的子空间,如此递归下去&…

按键 粘贴上一个命令_合并单元格、选择性粘贴的快捷键都是啥?今天一次告诉你……...

经常有人在群里问,合并单元格的快捷键是什么?选择性粘贴数值的快捷键是什么?今天就来聊聊快捷键的一些冷门知识……Alt键的作用快捷键其实就是一些组合键,主要用到Ctrl、shift、Alt这三个键其中之一或者是几个,再加上其…

Spring MVC和JQuery用于Ajax表单验证

在本教程中,我们将看到如何使用Ajax和Spring MVC和JQuery在服务器端验证表单。 Spring MVC为通过注释驱动的配置采用Ajax提供了非常方便的过程。 我们将使用此注释驱动的配置以JSON数据的形式发送Ajax响应。 响应将包含表单验证的状态,并且表单数据中存在…

Linux学习笔记——gzip命令

这个 gzip 程序被用来压缩一个或多个文件。当执行 gzip 命令时,则原始文件的压缩版会替代原始文件。 相对应的 gunzip 程序被用来把压缩文件复原为没有被压缩的版本。gzip 选项:选项 说明-c把输出写入到标准输出,并且保留原始文件。也有可能用…

java集合类——Stack类

查看java的API文档,Stack继承Vector类。 栈的特点是后进先出。 API中Stack自身的方法不多,基本跟栈的特点有关。 Java代码 import java.util.Stack; public class StackTest { public static void main(String[] args) { Stack&l…

免装版_无缝贴图制作软件 PixPlant2中文免装版

点击上方蓝字关注我们如您喜欢我们的公众号,不妨推荐给身边的朋友资源介绍:资源来源于网络,很多时候我们从网上找的贴图并不是无缝的,而且一般都没有高光/法线贴图这些,在材质的模拟上就要差了很多,在这里小…

Java中使用Map and Fold进行功能性编程

在函数式编程中,Map和Fold是两个非常有用的运算符,它们属于每种函数式语言。 如果Map和Fold运算符是如此强大且必不可少,那么您如何解释说即使Java编程语言缺少这两个运算符,我们也可以使用Java来完成工作? 事实是&…

Mysql 分页语句Limit用法

Mysql 分页语句Limit用法 1、Mysql的limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。 Sql代码 SELECT * FROM table LIMIT [offset,] r…

波纹扩散_C4D_动画amp;RS波纹扩散效果J_014

C4D-效果扩散效果,Redshift混合冰材质;利用顶点贴图扩散效果制作,RS混合调用顶点贴图。视频教程时长22分钟。对象为可编辑对象才能用顶点贴图。冰结域的扩展是这个动画的重点,在这个模式下,权重会根据半径向外扩展&…