- 可疑方法调用
- 使用==或!= 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