阿里规范:为何boolean类型变量命名禁用is开头

java中,对于非boolean类型的参数,getter和setter方法命名的规范是以get和set开头,如下:

private String Success;

public String getSuccess() {
 return Success;
}

public void setSuccess(String success) {
 Success = success;
}

而对于boolean类型的参数,setter方法是以set开头,但是getter方法命名的规范是以is开头,如下:

private boolean Success;

public boolean isSuccess() {
 return Success;
}

public void setSuccess(boolean success) {
 Success = success;
}

以上的方式都是正常的。

但是,如果我们将属性值定义为isSuccess,再来看看生成的getter和settter方法,如下:

private boolean isSuccess;

public boolean isSuccess() {
 return isSuccess;
}

public void setSuccess(boolean success) {
 isSuccess = success;
}

这种方式在某些时候是可以正常运行的,但是在一些rpc框架里面,当反向解析读取到isSuccess()方法的时候,rpc框架会“以为”其对应的属性值是success,而实际上其对应的属性值是isSuccess,导致属性值获取不到,从而抛出异常。

这个时候,我就好奇了,如果我强行写成getSuccess()的方式,会不会正常获取到Success属性值呢?,经过测试,发现是可以的。

那如果我两个方法都写了,结果是怎样的呢?

private boolean Success;

public boolean isSuccess() {
 return Success;
}

public boolean getSuccess() {
 return Success;
}

public void setSuccess(boolean success) {
 Success = success;
}

结果是:只会走getSuccess()方式获取属性值。

总结:

1、boolean类型的属性值不建议设置为is开头,否则会引起rpc框架的序列化异常。

2、如果强行将IDE自动生成的isSuccess()方法修改成getSuccess(),也能获取到Success属性值,若两者并存,则之后通过getSuccess()方法获取Success属性值。

到此这篇关于阿里规范:为何boolean类型变量命名禁用is开头的文章就介绍到这了,更多相关boolean类型变量命名禁用is开头内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详谈java中boolean和Boolean的区别

    boolean是基本数据类型 Boolean是它的封装类,和其他类一样,有属性有方法,可以new, 例如: Boolean flag = new Boolean("true"); // boolean 则不可以! Boolean 是boolean 的实例化对象类,和Integer对应int一样自jdk1.5.0以上版本后,Boolean在"赋值"和判断上和boolean一样, 即是你: boolean b1 = true ; 或者 Boolean b2 = true

  • Java中Boolean与字符串或者数字1和0的转换实例

    mysql有个字段是bit,只存储1和0,是二进制存储,那么在java的dao层如何映射成boolean呢 @Column(name="is_standard") private boolean isStandard; public void setIsStandard(boolean isStandard){ this.isStandard = isStandard; } public boolean getIsStandard(){ return isStandard; } 其实就

  • 深入解析Java编程中的boolean对象的运用

    只能是true或false两个值之一的变量就是布尔(boolean)类型变量,true和false是布尔型直接量.你可以用下面的语句定义一个名称为state的布尔型变量: boolean state=true 该语句用true值对变量state进行了初始化.你也可以使用赋值语句为一个boolean型变量赋值.例如,语句, state=false 设置变量state的值为false. 目前,我们除了为布尔变量赋值外,还不能进行更多的操作,但正像你在下一章中将要看到的,布尔型变量在程序做判定时,特别

  • 阿里规范:为何boolean类型变量命名禁用is开头

    java中,对于非boolean类型的参数,getter和setter方法命名的规范是以get和set开头,如下: private String Success; public String getSuccess() { return Success; } public void setSuccess(String success) { Success = success; } 而对于boolean类型的参数,setter方法是以set开头,但是getter方法命名的规范是以is开头,如下: p

  • 详解Redis中key的命名规范和值的命名规范

    数据库中得热点数据key命名惯例 表名:主键名:主键值:字段名 例如 user:id:0001:name 例如 user:id:0002:name 例如 order:id:s2002:price 上面的key对应的值则可以是 存放的方式 key value 优点 单独的key:value形式 order:id:s2002:price 2000 方便简单的操作,例如incr自增或自减 json格式 user:id:0001 {id:0001,name:"张三"} 方便一次性存和取数据,但

  • 后端将数据转化为json字符串传输的方法详解

    前言 在写后端的c层返回字段断言的时候,进行对于user对象的isAdmin字段断言.相关实体类字段如下 /** * 是否是超级管理员 */ private Boolean isAdmin = false; public Boolean getAdmin() { return isAdmin; } public void setAdmin(Boolean admin) { isAdmin = admin; } 当我断言时,我断言isAdmin字段存在 但是他报错说不存在$.isAdmin. 后端

  • IDEA安装阿里代码规范插件的步骤图文详解

    要养成一个好的编码习惯从自己编码开始,对自己代码的合理化命名,编码不仅对自己有好处,而且别人也容易读懂你的代码. 所以下载阿里的代码规范插件来约束自己凌乱的代码. 阿里规范插件GitHub地址:https://github.com/alibaba/p3c IDEA安装该插件步骤: 1.打开IDEA,File-> Setteings->Plugins->Browse Repositories,在Browse Repositories搜索栏搜索Alibaba,然后安装 2.安装完后点击   

  • Java 命名规范(非常全面)

    目录 1. 包命名规范 2. 类命名规范 2.1 接口命名规范 2.2 抽象类命名规范 2.3 异常类命名规范 3.方法命名规范 3.1 表述获取 3.2 表述查询 3.3 表述条件 3.4 表述设置 3.5 其他规范 4. 变量命名规范 5. 常量命名规范 6. 枚举命名规范 7. 其他命名规范 7.1 数组 7.2 表述复数或者集合 7.3 泛型类 7.4 接口实现类 7.5 测试类和测试方法 8 扩展:速记 Java 开发中的各种O 前言: 最近发现很多初级程序员写代码时很不规范,比如方法

  • java面向国际化项目开发需遵循的命名规范

    目录 前言 一.package命名规范 二.Class命名规范 三.Interface接口 四.变量 五.常量 六.方法 七.泛型 前言 笔者最近帮助一些朋友应聘远程工作(一般都是一些国外的项目),国外的项目负责人一般都会要求提供github账号或者一些源代码,很多朋友在这一关就被筛选掉了,其中不乏一些我认为技术非常厉害的行业大牛,他们都研发过很多的大型项目,经验与技术实力都非常不错.那究竟是为什么呢?我经过仔细的研究,发现他们都有一个共同点,就是命名规范不太严谨.我对这些在应聘远程项目第一关就

  • 阿里前端开发中的规范要求

    目录 1.命名规范 1.1  项目命名 1.2  目录命名 1.3 JS .CSS .SCSS .HTML .PNG  文件命名 1.4  命名严谨性 2.HTML规范 2.1 HTML  类型 2.2  缩进 2.3  分块注释 2.4  语义化标签 2.5  引号 3 CSS  规范 3.1  命名 3.2  选择器 3.3  尽量使用缩写属性 3.4  每个选择器及属性独占一行 3.5  省略 0  后面的单位 4 Javascript  规范 4.1  命名 4.2  代码格式 4.3

  • 谈谈变量命名规范的重要性

    在编程过程中一定要注意代码命名的规范性,否则在使用和维护过程中将造成很大的麻烦,这也是一种良好的编码习惯. 看下面代码,除了userPass命名规范[小驼峰命名法],其他的都不规范. uId: 看get方法,就会发现是getuId(),因为java生成get方法时,先看变量的前两个字母,如果第二个字母不是大写,则第一个大写. UserMoney: 看set方法,UserMoney=userMoney,没有了this. username: 往往第二个单词首字母需要大写. 以上这篇谈谈变量命名规范的

  • C&C++设计风格选择 命名规范

    1.命名规范 本系列的第一篇,命名风格本就是有关艺术审美,没有美与丑的绝对标准,本文难免带有主观选择倾向,但是会尽量保持客观的态度归纳几种主流的命名风格,仅供参考.制定规范是为了方便团队沟通和利于代码维护,虽然并不能符合每个艺术家的胃口.对于独立开发者,花点时间设计自己的编码风格也是有助于提高能力的,至少可以在看到自己代码的时候感觉美美哒~~.本文参考了<Google C++ 风格指南>,<Qt 编码风格>,当然还有维基百科,以后不累述. 1.1.常见命名法 蛇形命名法 [snak

  • JAVA语言编程格式高级规范

    作为一位开发人员,都要有严格的代码规范.为此我总结了一些代码规范案例. 目 录 1. 前言 2. 试用范围 3. JAVA命名规范-- 3.1 公共约定 3.2 Java文件.包 3.3 类.接口命名规范 3.4 方法命名规范 3.5 常量 3.6 变量和参数 3.7 组件/部件 3.8 集合 3.9 神秘的数 3.10 其他 3.11 Java异常 3.12 数组命名 3.13 数据库表命名规则 3.14 数据库字段命名规则 3.15 JSP文件命名 3.16 Servlet类命名 4. 书写

随机推荐