8种常见的Java不规范代码
作者:magina_敌法 发布时间:2023-05-24 10:59:53
在工作上,我最近对一个现有的Java项目代码进行了清理。完成之后,我发现了一些反复出现的不规范代码。所以,我把它们整理成了一个列表出来分享给我的同行希望能引起注意并改善代码的质量和可维护性。
这个列表不区分顺序,全部来自一些代码质量检查工具,如 CheckStyle, FindBugs 和PMD。
在Eclipse中格式化源代码并管理import语句
Eclipse提供了自动格式化源代码和管理import语句的功能(并移除未使用的语句)。你可以使用下面的快捷键来使用这些功能。
Ctrl + Shift + F – 格式化源代码。
Ctrl + Shift + O – 管理import语句并移除未使用的语句。
除了手动执行这两个功能外,你还可以让Eclipse在保存文件的时候自动格式化源代码并自动管理import语句。要做到这个,在Eclipse中,到 Window -> Preferences -> Java -> Editor -> Save Actions并启用 Perform the selected actions on save,选中 Format source code和 organize imports。
避免在方法中出现多个return语句(退出点):
在你的方法中,确保只有一个 退出点。不要在一个方法中使用多于一个return语句。
如,下面的代码是 不推荐的,因为它有多个退出点(return语句)。
简化if-else方法:
我们写了一些只要一个参数的工具方法,检查一些条件并根据条件返回一个值。如,在上面见到的 isEligible方法www.twitterchina.net。
不要为Boolean,Integer或String创建新的实例:
避免创建新的Boolean,Integer,String等实例。使用Boolean.valueOf(true)代替new Boolean(true)。两种写法效果差不多但却可以改善性能。
在代码块周围使用大括号:
永远不要忘记在块类型语句(如:if,for,while)周围使用大括号。这可以减少代码歧义并且避免在你修改代码块的时候产生新的bug。
不推荐
把方法的参数声明为final类型:
总是在所有兼容的地方把把方法的参数声明为final。这样做的话,当你无意中修改了参数的值,编译时会得到警告,并且编译生成的字节码也会得到优化。
推荐
用大写命名public static final类型成员变量:
总是使用大写命名用public static final类型变量。这样可以让你很容易区分常量和本地变量。
不推荐
把多个if语句合并成一个:
下面的代码
别忘了给switch添加default语句:
总是给switch添加一个default语句。
避免 重复 使用同样的字符串,创建一个常量吧:
如果你需要在多个地方使用同一个字符串,那就创建一个字符串常量来使用吧。
下面的代码:
来源:http://www.cnblogs.com/mortre/p/6343294.html
猜你喜欢
- 一、实现对ScrollViewer样式的自定义主要包括:1、滚动条宽度设置2、滚动条颜色3、滚动条圆角4、滚动条拉动时的效果mouseove
- 代码实例:<%@ page language="java" contentType="text/html
- @ModelAttribute在父类、子类的执行顺序被 @ModelAttribute 注解的方法会在Controller每个方法执行之前都
- 文件数据流在java语言中,进行文件输入和输出时,经常会使用到FileIntputStream和FileOutputStream两个文件数据
- 前言java 10 引进一种新的闪闪发光的特性叫做局部变量类型推断。听起来很高大上吧?它是什么呢? 下面的两个情景是我们作为 Java 开发
- 一、IO流的分类字符流ReaderInputStreamReader(节点流)BufferedReader(处理流)WriterOutput
- 本文的主要内容包括在下图,下面来一起看看吧。1、&和&&的区别2、switchswitch语句能否作用在byte,能
- * 在JavaWeb开发中用得比较多Java Web开发中的 * (listener)就是application、session、requ
- java 8引入了lambda表达式,lambda表达式实际上表示的就是一个匿名的function。在java 8之前,如果需要使用到匿名f
- maven的配置文件settings.xml存在于两个地方:1.安装的地方:${M2_HOME}/conf/settings.xml2.用户
- System.out.print("\b") 会在控制台下往回删掉一个字符,如果你想回删多个字符就打印多个 "
- 注意事项阿里云的dataworks提供了OpenApi, 需要是企业版或旗舰版才能够调用,也就是付费项目。这里测试主要是调用拉取datawo
- 知识准备Timer和ScheduledExecutorService是JDK内置的定时任务方案,而业内还有一个经典的定时任务的设计叫时间轮(
- IDEA安装后,前进 后退快捷按钮默认不在工具栏显示,需要手动将其添加到工具栏*按照图一选中Toolbar Run Actions ,点击右
- 遇到的问题!注:自定义CommentGenerator的都知道通过实现CommentGenerator接口的一些不足,毕竟只是实现了Comm
- 上篇并发编程之Java内存模型volatile的内存语义介绍了volatile的内存语义,本文讲述的是final的内存语义,相比之下,fin
- SpringCloudStream配置以下配置摘自《SpringCloud微服务实战》,配置主要包括两大部分:Stream配置(基础配置、通
- @SpringBootApplication的使用1. Spring Boot 的核心1.1. 入口类和 @SpringBootApplic
- 一、Arthas官方文档https://arthas.aliyun.com/doc/二、springBoot整合方式1、pom文件引入<
- nacos升级spring cloud 2020.0无法使用bootstrap.yml之前用spring cloud整合nacos,需要一个