Idea使用lombok的一些坑

Idea使用lombok的一些坑

起源

  前一段时间公司项目需要解析xml文件,然后用的dom4j,但是有人推荐我使用jaxb进行xml和java Bean的转换,于是自己搭建在idea搭建一个工程测试xml解析的测试应用,不过在使用idea集成lombok包的时候确实触了很多雷,以此篇记录一下:

1.引入lombok依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.18</version>
			<scope>provided</scope>
		</dependency>
2.为idea加入lombok插件
tips : 一定要使用比idea版本低的lombok版本
  • 使用idea自带插件库安装
    进入File–>Settings–>Plugins,搜索安装lombok插件即可
  • 使用zip方式安装
    在idea plugin官网下载zip包,lombok-plugin
3.设置Annotation Processors
  • 进入Settings–>Build,Excecution*–>Compiler–>Annotation Processors
  • 勾选 Enabled annotation processing
关于lombok中注解的常用用法和解释
val : 和 scala 中 val 同名, 可以在运行时确定类型;
  • @NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常, throw new NullPointException(参数名)
  • @Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法
  • @Getter/@Setter : 注解在类上, 为类提供读写属性
  • @Getter(lazy=true) :
  • @ToString : 注解在类上, 为类提供 toString() 方法
  • @EqualsAndHashCode : 注解在类上, 为类提供 equals() 和 hashCode() 方法
  • @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 注解在类上, 为类提供无参,有指定必须参数, 全参构造函数
  • @Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法
  • @Builder : 注解在类上, 为类提供一个内部的 Builder
  • @SneakThrows :
  • @Synchronized : 注解在方法上, 为方法提供同步锁
  • @Log4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
  • @Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
JAXB(Java Architecture for XML Binding)
  • JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。
  • Marshaller接口,将Java对象序列化为XML数据。
  • Unmarshaller接口,将XML数据反序列化为Java对象。
  • @XmlType,将Java类或枚举类型映射到XML模式类型
  • @XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化。FIELD表示JAXB将自动绑定Java类中的每个非静态的(static)、非瞬态的(由@XmlTransient标 注)字段到XML。其他值还有XmlAccessType.PROPERTY和XmlAccessType.NONE。
  • @XmlAccessorOrder,控制JAXB 绑定类中属性和字段的排序。
  • @XmlJavaTypeAdapter,使用定制的适配器(即扩展抽象类XmlAdapter并覆盖marshal()和unmarshal()方法),以序列化Java类为XML。
  • @XmlElementWrapper ,对于数组或集合(即包含多个元素的成员变量),生成一个包装该数组或集合的XML元素(称为包装器)。
  • @XmlRootElement,将Java类或枚举类型映射到XML元素。
  • @XmlElement,将Java类的一个属性映射到与属性同名的一个XML元素。
  • @XmlAttribute,将Java类的一个属性映射到与属性同名的一个XML属性。

部分代码及注释引用于:
作者:意识流丶

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值