(1)POJO 类中布尔类型变量都不要加 is 前缀,否则部分框架解析会引起序列化错误。
反例:定义为基本数据类型 Boolean isDeleted 的属性,它的方法也是 isDeleted(),RPC 框架在反向解
析的时候,“误以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异常。
(2)所有的 POJO 类属性必须使用包装数据类型(包装数据类型是指Long、Integer等包装数据类型,而不是基本数据类型long、int等基本数据类型)。
正例:数据库的查询结果可能是 null,因为自动拆箱,用基本数据类型接收有 NPE 风险。
另外,基本数据类型有默认值,如int不给初始值的时候,默认值是0,而Integer不给初始值是null,故POJO 类属性用包装数据类型比较合理,如果没赋值再判空的时候,本身为null却被初始化为默认值0也是不合理的。
(3)定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值。
(4)POJO 类必须写 toString 方法。
(5)禁止在 POJO 类中,同时存在对应属性 xxx 的 isXxx()和 getXxx()方法。
(6)类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO/ PO / UID 等。
正例:JavaServerlessPlatform / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例:javaserverlessplatform / UserDo / XMLService / TCPUDPDeal / TAPromotion
参考资料:
《JAVA 开发手册》