阿里开发手册之面向对象规约(序列化原理待完善)

这篇博客探讨了面向对象编程中的一些规约和最佳实践,包括避免通过对象引用访问静态成员,使用@override注解标记覆写方法,慎用可变参数,废弃接口需标注@Deprecated,避免使用过时类和方法。此外,还强调了包装数据类型和基本数据类型的使用场景,POJO类的设计原则,以及序列化类的注意事项。同时,还涵盖了构造方法、toString方法、循环中的字符串拼接、final关键字的使用,以及类和方法的访问控制策略。
摘要由CSDN通过智能技术生成

避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可

所有的覆写方法,必须加@override注解

相同参数类型,相同业务含义,才可以使用java的可变参数,避免使用object

接口过时必须加@Depercated注解,并清晰地说明采用的新接口或者新服务是什么

不能使用过时的类或方法

所有相同类型的包装类对象之间值得比较,全部使用equals方法比较.
对于Integer var=?在-128至127范围内的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,
这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,
推荐使用equals方法进行判断

基础数据类型和包装数据类型的使用标准
1.所有的POJO类属性必须使用包装数据类型
2.RPC方法的返回值和参数必须使用包装数据类型
3.所有的局部变量使用基本数据类型
POJO类属性没有初值是提醒使用者在需要使用时,必须自己显式地进行赋值,任何NPE问题,或者入库检查,都由使用者来保证

(定义POJO类 不要设定任何属性默认值)

序列化类新增属性时,请不要修改serialVersioUID字段,避免反序列失败;如果完全不兼容升级,避免反序列化混乱,那么请修改servialVersionUID的值(//TODO 序列化接口的原理)

构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在init方法中

POJO类必须写toString方法,如果继承了另一个POJO类,注意加一下super.toString()<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值