招商推广十种方法,河北关键词seo排名,昆明seo网站建设,网站正能量晚上免费软件java程序员一直以如何让代码写的可维护性跟高#xff0c;不论是框架还是代码都追求精益求精。 第一阶段#xff1a;由于面向对象的要求#xff0c;我们会将成员变量用私有属性修饰#xff0c;但是#xff0c;如果面临类中的成员变量比较多的情况下#xff0c;修改会非常麻… java程序员一直以如何让代码写的可维护性跟高不论是框架还是代码都追求精益求精。 第一阶段由于面向对象的要求我们会将成员变量用私有属性修饰但是如果面临类中的成员变量比较多的情况下修改会非常麻烦 第二阶段基于字节码框架ASM的lombok使用这个框架可以只需要定义成员变量在类上增加Data等字段就可以实现自动生成的getter和setter方法 第三阶段jdk21带来的特性record可以默认生成getter和全参的构造函数 这里就重点说一下record类 三种方式的比较
手写getter/setterlombokrecord代码整体表现字段多很乱再加上一些继承等会导致toString也会很臃肿简洁简洁是否需要三方依赖不需要可以使用ide自动生成但是修改的话也会比较麻烦需要不需要易用性一般简单简单是否需要生成代理类不需要需要不需要可读具体看代码实现具体看注解的使用可读可写具体看代码实现具体看注解的使用不可写适配场景所有场景不发生bug的所有场景只读场景环境升级的影响没有影响可能有影响没有影响代码可读性一般好一般是否支持表单校验注解支持支持不支持 有上述表格可知没有任何一种是绝对好或者绝对差具体的使用方式需要根据团队的编码规范来不要自成一派 record的使用
基础使用
定义
public record TokenResponse(String access_token, Integer expires_in) {
}
使用
Test
public void testRecord(){// 不可以创建空参会报错// TokenResponse token new TokenResponse();TokenResponse token new TokenResponse(token, 222);// 并不是getter的形式反而更像builderString access_token token.access_token();System.out.println(access_token);System.out.println(token);
}
效果 使用场景 根据该类的返回值为可读可以推断一下场景 1. 接受web参数 2. 函数的返回值 3. rpc的返回值