做车展的网站深圳洲聚网站建设

张小明 2026/1/13 0:20:24
做车展的网站,深圳洲聚网站建设,厦门百度推广怎么做,文佳佳做网站Lombok 是一个 Java 库#xff0c;它通过注解在编译期自动生成常见的样板代码#xff08;如 getter、setter、构造函数等#xff09;#xff0c;从而简化开发、减少冗余代码。在 Spring Boot 项目中使用 Lombok 非常常见。以下分两部分回答你的问题#xff1a;1. Spring B…Lombok 是一个 Java 库它通过注解在编译期自动生成常见的样板代码如 getter、setter、构造函数等从而简化开发、减少冗余代码。在 Spring Boot 项目中使用 Lombok 非常常见。以下分两部分回答你的问题1. Spring Boot 项目如何引入 Lombok需要注意什么引入方式Maven在pom.xml中添加 Lombok 依赖dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional!-- 推荐设为 true避免传递依赖 --/dependencySpring Boot 官方 starter 已包含 Lombok 的兼容版本所以通常无需指定version。注意事项IDE 插件支持必须在 IDE如 IntelliJ IDEA 或 Eclipse中安装 Lombok 插件否则 IDE 无法识别生成的代码会出现编译错误或找不到方法的提示。IDEA在 Settings → Plugins 中搜索 “Lombok” 并安装重启后启用注解处理器Enable annotation processing。Eclipse需额外下载 lombok.jar 并运行安装。编译器兼容性确保使用的 Java 版本与 Lombok 版本兼容如 JDK 17 需 Lombok 1.18.22。不要在生产依赖中传递 Lombok使用optionaltrue/optional或provided范围因为 Lombok 仅在编译期起作用运行时不需要。避免与手动编写的 getter/setter 冲突如果类中已有某 getterLombok 不会再生成但要注意逻辑一致性。序列化/反序列化场景某些框架如 Jackson依赖无参构造函数若只用AllArgsConstructor需额外加NoArgsConstructor。2. Lombok 提供了哪些常用机制注解以下是开发中最常用的 Lombok 注解注解作用Getter/Setter自动生成字段的 getter/setter 方法ToString自动生成toString()方法可排除敏感字段EqualsAndHashCode自动生成equals()和hashCode()NoArgsConstructor生成无参构造函数AllArgsConstructor生成包含所有字段的构造函数RequiredArgsConstructor为final或NonNull字段生成构造函数Data组合注解相当于GetterSetterToStringEqualsAndHashCodeRequiredArgsConstructorBuilder提供建造者模式Builder Pattern支持用于链式构建对象Slf4j/Log4j2等自动生成日志对象如private static final Logger log LoggerFactory.getLogger(...)NonNull标记参数或字段非空自动生成空值检查抛出NullPointerExceptionValue用于创建不可变类所有字段 private final GetterToStringEqualsAndHashCodeAllArgsConstructorSneakyThrows允许不声明或捕获受检异常慎用示例结合 Spring Boot 常用实体类importlombok.Data;importlombok.NoArgsConstructor;importlombok.AllArgsConstructor;DataNoArgsConstructorAllArgsConstructorpublicclassUser{privateLongid;privateStringname;privateStringemail;}等价于手写 getter、setter、toString、equals、hashCode 和两个构造函数。总结Lombok 极大简化 Java Bean 编写提升开发效率。在 Spring Boot 中引入简单但需配置 IDE 插件。常用注解如Data,Builder,Slf4j能覆盖大部分开发场景。注意构造函数、序列化、日志等场景的兼容性细节。如果你有具体使用场景如与 JPA、MyBatis、Jackson 集成也可以进一步说明我可以给出针对性建议。更详细的说明1.Getter/Setter作用为字段自动生成 getter 和 setter 方法。importlombok.Getter;importlombok.Setter;GetterSetterpublicclassPerson{privateStringname;privateintage;}等价于手写publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.namename;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.ageage;}2.ToString作用自动生成toString()方法。importlombok.ToString;ToStringpublicclassBook{privateStringtitle;privateStringauthor;}使用BookbooknewBook();book.setTitle(Java核心技术);book.setAuthor(Cay Horstmann);System.out.println(book);// 输出Book(titleJava核心技术, authorCay Horstmann)可加ToString(exclude author)排除敏感字段。3.EqualsAndHashCode作用基于字段生成equals()和hashCode()。importlombok.EqualsAndHashCode;EqualsAndHashCodepublicclassPoint{privateintx;privateinty;}测试Pointp1newPoint();p1.x1;p1.y2;Pointp2newPoint();p2.x1;p2.y2;System.out.println(p1.equals(p2));// true4.NoArgsConstructor作用生成无参构造函数。importlombok.NoArgsConstructor;NoArgsConstructorpublicclassCar{privateStringbrand;// 有无参构造new Car() 可用}5.AllArgsConstructor作用为所有字段生成全参构造函数。importlombok.AllArgsConstructor;AllArgsConstructorpublicclassCar{privateStringbrand;privateintprice;}使用CarcarnewCar(Tesla,300000);6.RequiredArgsConstructor作用为final字段或标记了NonNull的字段生成构造函数。importlombok.RequiredArgsConstructor;importlombok.NonNull;RequiredArgsConstructorpublicclassStudent{privatefinalStringid;// final → 必须初始化NonNullprivateStringname;// NonNull → 必须初始化privateintage;// 普通字段不参与构造}使用StudentsnewStudent(S001,Alice);// 只需传 id 和 name7.Data作用最常用自动组合Getter,Setter,ToString,EqualsAndHashCode,RequiredArgsConstructor。importlombok.Data;DatapublicclassProduct{privateLongid;privateStringname;privatedoubleprice;}你立刻可以调用product.getName()product.setName(Phone)System.out.println(product)用equals()比较两个 Product用new Product(id, name, price)如果字段非 final 则无参构造也存在⚠️注意Data不生成无参构造除非你额外加NoArgsConstructor⚠️ 注意Data不会生成无参构造函数如需无参构造比如用于 Jackson 反序列化要手动加NoArgsConstructor。8.Builder作用提供建造者模式支持链式调用创建对象。importlombok.Builder;BuilderpublicclassUser{privateStringusername;privateStringemail;privateintage;}使用UseruserUser.builder().username(john).email(johnexample.com).age(30).build();9.Slf4j作用自动生成 SLF4J 日志对象Spring Boot 默认日志框架。importlombok.extern.slf4j.Slf4j;Slf4jpublicclassOrderService{publicvoidplaceOrder(){log.info(订单已创建);log.warn(库存不足警告);}}等价于手动写privatestaticfinalorg.slf4j.Loggerlogorg.slf4j.LoggerFactory.getLogger(OrderService.class);类似还有Log4j2Log4j 2、Logjava.util.logging等。10.NonNull作用在方法参数或字段上标记非空Lombok 会自动生成空检查抛NullPointerException。importlombok.NonNull;publicclassMessageService{publicvoidsendMessage(NonNullStringmessage){// Lombok 自动插入if (message null) throw new NullPointerException(message is marked non-null but is null);System.out.println(发送消息: message);}}调用sendMessage(null)会立即抛出异常。11.Value作用创建不可变类immutable class所有字段默认private final并带Getter、ToString、EqualsAndHashCode、全参构造。importlombok.Value;ValuepublicclassCoordinate{intx;inty;}等价于publicfinalclassCoordinate{privatefinalintx;privatefinalinty;publicCoordinate(intx,inty){this.xx;this.yy;}publicintgetX(){returnx;}publicintgetY(){returny;}// toString, equals, hashCode}注意Value类不能被继承final也不能修改字段值。12.SneakyThrows作用偷偷抛出受检异常Checked Exception无需在方法上声明throws。importlombok.SneakyThrows;importjava.io.IOException;publicclassFileManager{SneakyThrowspublicvoidreadFile(){thrownewIOException(文件读取失败);// 不需要 try-catch 或 throws}}⚠️ 慎用破坏了 Java 异常检查机制仅在明确知道后果时使用如测试、工具类。补充建议Spring Boot 中实体类Entity通常用DataNoArgsConstructorJPA 要求无参构造DTO/VO常用Data或Builder日志直接用Slf4j不可变配置对象用Value构造注入可用RequiredArgsConstructorNonNull实现简洁注入希望这些例子能帮你快速上手 Lombok如果需要整合到 JPA、MyBatis 或 Jackson 的具体场景也可以继续问我。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

坪山建设网站网站建设黑客篡改

Grammarly作为全球顶级的语法检查工具,其高级版功能强大但价格昂贵。现在,通过autosearch-grammarly-premium-cookie项目,你可以轻松免费享受所有高级特权。这个开源工具专门为你自动获取有效的Grammarly Premium Cookie,让你无需…

张小明 2026/1/7 12:54:38 网站建设

印刷东莞网站建设技术支持个人网站模板设计步骤

PyTorch-CUDA-v2.6镜像在教育领域用于AI教学实训平台 在高校人工智能课程的实验室里,一个常见的场景是:学生们围坐在电脑前,屏幕上不是代码训练进度条,而是一堆报错信息——“CUDA not available”、“No module named ‘torch’”…

张小明 2026/1/7 18:45:16 网站建设

项目推广网成都seo外包

大家好我是风歌,曾担任某大厂java架构师,如今专注java毕设领域。今天要和大家聊的是一款java小程序项目——基于微信小程序的高校课堂教学管理系统。项目源码以及远程配置部署相关请联系风歌,文末附上联系信息。项目简介:权限按管…

张小明 2026/1/11 2:35:33 网站建设

施工企业风险防控宁波seo自然优化技术

导语:开源社区再添突破性进展——Ring-flash-linear-2.0模型以仅6.1B激活参数实现了传统40B密集型模型的性能水平,通过混合架构与稀疏激活技术重新定义大模型效率标准。 【免费下载链接】Ring-flash-linear-2.0 项目地址: https://ai.gitcode.com/hf_…

张小明 2026/1/10 16:51:50 网站建设

邗江区建设局网站东莞公司网上推广

还在为Internet Download Manager的试用期到期而烦恼吗?想要享受更好的下载体验?这份IDM使用指南将为你提供从原理到实操的完整解决方案,让你更好地使用这款软件。 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset …

张小明 2026/1/11 10:32:51 网站建设

我来做煮官方网站Linux下使用wordpress

基于支持向量机的Adaboost数据回归预测 SVM Adaboost数据回归 利用交叉验证抑制过拟合问题 matlab代码,注:要求 Matlab 2018B 及以上版本 注:采用 Libsvm 工具箱(无需安装,可直接运行),仅支持 W…

张小明 2026/1/10 16:43:24 网站建设