现代化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,一经查实,立即删除!

相关文章

AngularJS $http service

原文链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/angularjs-http-service/ 1.通常用法: $http服务是一个只有一个参数-配置对象的函数,用于产生一个http请求并返回一个promise对象。 $http({ method: GET, url: /someUr…

Erwin 生成 mysql 带注释(comment )的脚本

Erwin设计数据库非常方便,有逻辑视图和物理视图,可以很方便的生成数据库文档和SQL 脚本。在使用过程中唯一不爽的地方是脚本不能生成comment。在百度无数次无法解决下,又翻墙谷歌,在一个日本网站找到了解决办法,不敢独…

YY语音01

1、YYSetup-8.2.0.1-zh-CN.exe (http://waiwai.duowan.com/)(http://www.yy.com/download) C:\Program Files (x86)\duowan\yy 1.1、YY游戏大厅,指向的安目录:“C:\Users\33\AppData\Roaming\duowan\yygame\ver\0\1.3.1.13\” 2、 3、 4、 5、转载于:htt…

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

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

带有Jersey和Spring的RESTful Web应用程序

几个月前,我们的任务是创建一个API,以向第三方开发人员公开我们系统中的某些功能。 我们选择将这些功能公开为一系列REST Web服务。 我开始使用Jersey ,它是JSR 311 (用于Restful Services的Java API)的参考实现&#…

关于更新pip的心得

如果pip install --upgrade pip 删除了自己,但是无法安装新的自己。 那么下载最新的pip,解压 1、在命令窗口输入 python(前提条件已经在系统路径) setup.py(pip 包里的脚本) install 即可 2、注销一下,让pip在系统路径生效 3、打开cmd,输…

Linux/Unix/Mac 系统GIT密码存储

新建一个 ~/.netrc 文件, 将 git 服务器, 用户名以及密码记录在这个文件, 如下所示: machine your-git-server login your-username password your-password普通用户的 git-server 填 github.com 就可以了. 如果有多个 server 就…

财务部门:你需要多长时间才能够回答老板的这些问题?

企业经营管理中,对管理决策者来说,有许多问题是希望随时都知道的,下面,我们一起来探讨一下,这些常见的问题,我们怎么来快速回答。首先,我们来回答以下几个问题:注:这几个…

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

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

Java应用程序上的Twitter API

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

ps aux和ps -ef命令区别

ps aux 是用BSD的格式来显示 java这个进程显示的项目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMANDps -ef 是用标准的格式显示java这个进程显示的项目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD)转载于:https://www.cnblogs.com/ya…

gulp学习笔记3

gulp系列学习笔记: 1、gulp学习笔记1 2、gulp学习笔记2 3、gulp学习笔记3 4、gulp学习笔记4 1、编译sass Sass 是一种 CSS 的开发工具,提供了许多便利的写法,大大节省了开发者的时间,使得 CSS 的开发,变得简单和可维护…

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…

[OJ] Data Stream Median (Hard)

LintCode 81. Data Stream Median (Hard) 思路: 用一个大根堆保存较小的一半数, 一个小根堆保存较大的一半数.每次根据num和两个堆顶的数据决定往哪个堆里面放.放完后进行平衡确保两个堆的size差不超过1.利用两个堆的size和堆顶值计算median.大根堆可以表示为priority_queue<…

书评:JBoss AS 7:配置,部署和管理

我热切地接受Packt Publishing邀请复审JBoss AS 7&#xff1a;配置&#xff0c;部署和管理&#xff0c;因为自从我上次使用JBoss已有数年了&#xff0c;我很想了解有关JBoss AS 7的更多信息。 我已经写过关于《 JBoss AS 7配置&#xff0c;部署和管理》一书的第一印象&#xff…

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

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