Java开发手册之控制语句

Java开发手册之控制语句Java开发手册之控制语句

大家好,又见面了,我是你们的朋友全栈君。

  1. 【强制】在一个switch块内,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止;在一个switch块内,都必须包含一个default语句并且放在最后,即使它什么代码也没有。
  2. 【强制】在if/else/for/while/do语句中必须使用大括号。即使只有一行代码,避免采用
    单行的编码方式:if (condition) statements;
  3. 【推荐】表达异常的分支时,少用if-else方式,这种方式可以改写成:
if (condition) {              ...    
         return obj;    
}   
// 接着写else的业务逻辑代码;  说明:如果非得使用if()...else if()...else...方式表达逻辑,【强制】避免后续代码维护困难,请勿超过3层。  

正例:超过3层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现,其中卫语句示例如下:

public void today() {     if (isBusy()) { 
 	 	System.out.println(“change time.”); 
        return; 
    }  
    if (isFree()) { 
 	System.out.println(“go to travel.”); 	         return; 
    } 
 
System.out.println(“stay at home to learn Alibaba Java Coding Guidelines.”);     return; 
} 
  1. 【推荐】除常用方法(如 getXxx/isXxx)等外,不要在条件判断中执行其它复杂的语句,将复
    杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。
    说明:很多 if 语句内的逻辑相当复杂,阅读者需要分析条件表达式的最终结果,才能明确什么样的条件执行什么样的语句,那么,如果阅读者分析逻辑表达式错误呢?
    正例
// 伪代码如下 
final boolean existed = (file.open(fileName, "w") != null) && (...) || (...); if (existed) { 
    ... 
}   
反例: 
if ((file.open(fileName, "w") != null) && (...) || (...)) { 
    ... 
} 
  1. 【推荐】循环体中的语句要考量性能,以下操作尽量移至循环体外处理,如定义对象、变量、
    获取数据库连接,进行不必要的try-catch操作(这个try-catch是否可以移至循环体外)。
  2. 【推荐】接口入参保护,这种场景常见的是用于做批量操作的接口。
  3. 【参考】下列情形,需要进行参数校验:
    1) 调用频次低的方法。
    2) 执行时间开销很大的方法。此情形中,参数校验时间几乎可以忽略不计,但如果因为参数错误导致中间执行回退,或者错误,那得不偿失。
    3) 需要极高稳定性和可用性的方法。
    4) 对外提供的开放接口,不管是RPC/API/HTTP接口。
    5) 敏感权限入口。
  4. 【参考】下列情形,不需要进行参数校验:
    1) 极有可能被循环调用的方法。但在方法说明里必须注明外部参数检查要求。
    2) 底层调用频度比较高的方法。毕竟是像纯净水过滤的最后一道,参数错误不太可能到底层才会暴露问题。一般DAO层与Service层都在同一个应用中,部署在同一台服务器中,所以DAO的参数校验,可以省略。
    3) 被声明成private只会被自己代码所调用的方法,如果能够确定调用方法的代码传入参数已经做过检查或者肯定不会有问题,此时可以不校验参数。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106532.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • django验证码登录_django登录验证

    django验证码登录_django登录验证djoser是什么?作用:Django认证系统的REST实现。djoser库提供了一组DjangoRestFramework视图,用于处理注册、登录、注销、密码重置和帐户激活等基本操作。它适用于

    2022年8月7日
    6
  • Python 支付宝转账到银行卡二维码制作步骤分享[通俗易懂]

    Python 支付宝转账到银行卡二维码制作步骤分享[通俗易懂]PS:最近有需求需要根据信息自动生成支付宝转账二维码,实现功能支付宝扫码后信息自动输入。谷歌百度知乎各种搜索教程一大堆没有一个能成功实现(有可能是我流程不对),大致的流程为一下三步:根据url生成链接url转短链短链生成二维码PS:根据此教程做出的二维码扫码会提示违规,不能实现预定目标经多次测试总结出以下流程:转账URL地址拼接:~~alipays://pl…

    2025年9月16日
    6
  • 设计模式之桥接(bridge)模式

    在现实生活中,我们常常会用到两种或多种类型的笔,比如毛笔和蜡笔。假设我们需要大、中、小三种类型的画笔来绘制12中不同的颜色,如果我们使用蜡笔,需要准备3*12=36支。但如果使用毛笔的话,只需要提供3

    2021年12月19日
    53
  • vb调用access数据库(access追加查询键值冲突)

    VB连接access数据库时,在查询语句中需要使用like问题时注意1、officeaccess中查询的通配符“*”。SQL中通配符是“%”2、但在VB中使用时,为“%%”,不是“*”,也不是“**”转载于:https://www.cnblogs.com/xbj-hyml/p/6928695.html…

    2022年4月16日
    33
  • xshell如何激活_xftp6使用教程

    xshell如何激活_xftp6使用教程市面上连接服务器的客户端有很多,有免费的,也有收费的。有国产的也有非国产的。每个人使用的都不一样。很多也使用过,比如putty免费的,但是在我使用看来,使用一会就卡顿住了,最后就是需要重新连接,怎么用都不是很方便,最后还是的使用回来xshell和xftp。下面就来演示下如何安装xshell和xftp。首先是下载xshell和xftp的软件安装包。其实下载这个安装包是非常简单的,但是不简单的是如何下载一个真的能用的安装包。其次就是安装了。安装其实也是非常的简单的。下一步,下一步就可以完成.

    2025年10月9日
    6
  • 苹果手机数据转移到新手机_不同品牌手机一键换机:换新手机怎么转移数据?…

    苹果手机数据转移到新手机_不同品牌手机一键换机:换新手机怎么转移数据?…我们正处于一个数码产品更新换代非常快速的时代,很多消费者会紧跟时代潮流,经常更换新手机,但是更换手机之后我们通常需要将旧手机里的数据进行转移,不同品牌之间的手机怎么进行一键换机呢?以安卓手机更换苹果手机转移数据为例:1、首先我们需要在安卓手机上安装“转移到iOS”APP,通过该应用我们可以将安卓手机的数据转移到新的苹果手机上2、确保安卓设备处于WiFi状态3、将安卓设备以及苹果设备连接电源4、设置…

    2022年5月25日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号