zoukankan      html  css  js  c++  java
  • 如何正确定义接口的返回值(boolean/Boolean)类型及命名(success/isSuccess)

    一般情况下,我们可以有以下四种方式来定义一个布尔类型的成员变量:

        boolean success;
        boolean isSuccess;
        Boolean success; //推荐写法
        Boolean isSuccess;

    success 还是 isSuccess

    在阿里巴巴Java开发手册中关于这一点,有过一个『强制性』规定:

    -w656

    public class Model1 {
    
        boolean success;
    
        public boolean isSuccess() {
            return success;
        }
    
        public void setSuccess(boolean success) {
            this.success = success;
        }
    }
    public class Model2 {
    
        boolean isSuccess;
    
        public boolean isSuccess() {//如果严格按照规范定义的话,getter方法应该叫isIsSuccess。但是很多IDE都会默认生成为isSuccess。
            return isSuccess;
        }
    
        public void setSuccess(boolean success) {
            isSuccess = success;
        }
    }
    public class Model3 {
    
        Boolean success; //推荐写法
    
        public Boolean getSuccess() {
            return success;
        }
    
        public void setSuccess(Boolean success) {
            this.success = success;
        }
    }
    public class Model4 {
    
        Boolean isSuccess;
    
        public Boolean getSuccess() {
            return isSuccess;
        }
    
        public void setSuccess(Boolean success) {
            isSuccess = success;
        }
    }

    以上代码的setter/getter是使用Intellij IDEA自动生成的,仔细观察以上代码,会发现以下规律:

    • 基本类型自动生成的getter和setter方法,名称都是isXXX()setXXX()形式的。
    • 包装类型自动生成的getter和setter方法,名称都是getXXX()setXXX()形式的。

     所以,在定义POJO中的布尔类型的变量时,不要使用isSuccess这种形式,而要直接使用success!

    Boolean还是boolean

    在阿里巴巴Java开发手册中,对于POJO中如何选择变量的类型也有着一些规定:

    所以,尽量使用包装类型。

    总结

    本文围绕布尔类型的变量定义的类型和命名展开了介绍,最终我们可以得出结论,在定义一个布尔类型的变量,尤其是一个给外部提供的接口返回值时,要使用success来命名,阿里巴巴Java开发手册建议使用封装类来定义POJO和RPC返回值中的变量。但是这不意味着可以随意的使用null,我们还是要尽量避免出现对null的处理的。

    阿里巴巴Java开发手册:https://caoye.lanzous.com/iby7opg

    参考文章来源:http://hollischuang.gitee.io/tobetopjavaer/#/basics/java-basic/success-isSuccess-and-bollean-Bollean

  • 相关阅读:
    面向接口程序设计思想实践
    Block Chain Learning Notes
    ECMAScript 6.0
    Etcd Learning Notes
    Travis CI Build Continuous Integration
    Markdown Learning Notes
    SPRING MICROSERVICES IN ACTION
    Java Interview Questions Summary
    Node.js Learning Notes
    Apache Thrift Learning Notes
  • 原文地址:https://www.cnblogs.com/ooo0/p/12779437.html
Copyright © 2011-2022 走看看