为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner ⭐️ gitee https://gitee.com/Qiuner...如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 (^ ~ ^) 想看更多 那就点个关注吧 我会尽力带来有趣的内容 u盘无法被自己的电脑上读取 硬盘插入没有任何显示 插入别人电脑硬盘能正常用
lombok插件安装后 编译没问题,但是一运行起来就报错,说找不到符号。 解决方法 ? 如果经过如上设值还不行,就先进行clean,再进行编译,生存class文件,然后再运行 ?...原理 lombok的运行原理是,在编译的时候将辅助的代码写入 到.class文件中,然后运行的时候就没问题。 而idea这个设置,就是注解处理,然后并设置输出的源码目录。
marker interfaces中文翻译叫做标记接口,标记接口就是说这个接口使用来做标记用的,内部并没有提供任何方法或者字段。...TYPE 表示用在Class,interface,enum或者record上。 FIELD 表示用在class的字段上。 METHOD 表示用在方法上。 PARAMETER 表示用在方法上面。...TYPE_USE用在任何类型的使用上面,比如申明,泛型,转换: @Encrypted String data ListNonNull String> strings MyGraph = (@Immutable...lombok应该大家都用过吧,它实际上为我们提供了两个注解处理器: ?...很不幸的是,因为我在CustUser中使用了lombok中的log,如果像上面一样显示指定annotationProcessor则会将覆盖默认的查找路径,最后会导致lombok失效。
和 hashcode 的实现,通过构造方法初始化所有final 的属性,以及所有没有使用@NonNull标记的初始化程序的非final字段,以确保该字段永远不为null。...null - check 如果lombok为您生成整个方法或构造函数(例如@Data),Lombok总是将字段上通常称为@NonNull的各种注释视为生成空值检查的信号。...但是,现在,在参数上使用lombok自己的@lombok.NonNull会导致在您自己的方法或构造函数中只插入null-check语句。...默认情况下,将会用在非静态,非 transient 标记的字段上,但是你可以通过 @EqualsAndHashCode.Include或 @EqualsAndHashCode.Exclude 标记类型成员来修改使用哪些字段...当你继承其他类时没有设置 callSuper 为 true 会进行警告,因为除非父类没有相同的属性,lombok无法为您生成考虑超类声明的字段的实现。
Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。...根据我个人的理解来说,所谓WebService就是一个中间商,Java和C#编写的程序可以通过该中间商发布信息以供其他异构语言读取。 ...这个简单演示一下通过java来读取WebService上的内容。 大概步骤: 首先是根据WebService的描述(WSDL)生成本地的存根文件; 然后在本地调用存根文件即可。 ...[] weathers = serviceSoap_PortType.getWeatherbyCityName(citys[i],TheDayFlagEnum.Today); //如果不存在该城市的天气则读取下一个...,你可以读取手机归属地,可以读取股票信息,…… 相关参考: http://dotnet.e800.com.cn/articles/2008/325/1206413620368_1.html
注解在字段上,则在 setter, constructor 方法中加入判空,注意这里需要配合 @Setter、@RequiredArgsConstructor、@AllArgsConstructor 使用...注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法,同时可以指定生成的 setter 方法的访问级别 @Getter 使用方法同 @Setter,区别在于生成的是 getter...生成无参的构造方法。 @RequiredArgsConstructor 注解在类。为类中需要特殊处理的字段生成构造方法,比如 final 和被 @NonNull 注解的字段。...: 不同开发人员同时开发同一个使用 Lombok 项目、需要安装 Lombok 插件 不利于重构属性名称,对应的 setter、getter、builder, IDEA 无法帮助自动重构 有可能降低了源代码的可读性和完整性...,无参构造器无法处理 @NonNull,但在序列化/反序列化的还是需要提供无参的 当团队决定不再使用 Lombok 的时候,可以使用 Lombok 插件的 Delombok 一键去除,在 Refactor
,还可以使用在字段上,这样就是表示针对该字段自动生成 getter /setter 方法。...@Getter @Setter private String password; 这里该注解使用在类上,还是在字段上的区别就是,如果注解使用在类上,只针对这个类的非静态字段有效。..., PACKAGE, PRIVATE 2.3 @NonNull 顾名思义,@NonNull 用于标记类中不能允许为 null 的字段或者参数上,任何使用该字段的地方都生成空指针判断代码,若@NonNull...this.password = password; } } 使用了 @NonNull 注解之后我们可以获取到反编译之后的字节码信息如下,这就是 Lombok 给我们生成的最终的代码...@RequiredArgsConstructor 为实体类生成指定字段的构造器方法,而这些字段需要被 final,或者 @NonNull 修饰。
那我们接下来使用的 Lombok 来试下: ? 什么,只使用了 @Date 注解就可以实现之前 60 行的相同功能,代码长度整整缩小了 3 倍,这么神奇的嘛?那么让我们走进 Lombok 吧!...接下来讲下 Lombok 实现的原理,这样就知道为什么要这样使用 Lombok 的注解了。...接下来演示 Lombok 注解使用方式,并通过查看编译后 class 文件,理解其工作原理,在这里以 @Getter 注解为例: 首先创建一个 GetterDemo 类,其中有 name 和 age 两个字段...,通过 onMethod_ 参数可以为我们在生成的 getAge 方法添加上其他注解,比如 @NonNull;在 name 上加上 @Getter 注解,并加上 lazy 参数并设为 true,表示开启懒加载...,而是只有调用该方法的时候判断该字段是否为空,若为空,则初始化一个字符串并返回,这样就可以为开销大的初始化操作做一个懒加载,只有当使用的时候才会主动加载这个字段。
lombok 注解介绍 @Getter and @Setter 你可以用@Getter / @Setter注释任何字段(当然也可以注释到类上的...对于具有约束的字段(例如@NonNull字段),不会生成检查或分配,因此请注意,正确初始化这些字段之前,这些约束无效。...//使用lombok注解的 import lombok.AccessLevel; import lombok.NonNull; import lombok.experimental.Wither;...就是我们熟知的 @Transactional 使用的时候设置在对应的类或方法上即可。...无法使用命令运行; <!
常用注解 可以使用@Getter 或 @Setter标注任何字段,lombok 可以帮助你自动生成默认的get、set方法。...可以在方法或构造器的参数上使用 @NonNull,lombok会为你生成一个空值检查的声明。...它将使用所有非静态,非瞬态字段,但是可以通过使用@ EqualsAndHashCode.Include或@EqualsAndHashCode标记类型成员来修改使用的字段。...它的操作类似于synchronized关键字,但是它锁定在不同的对象上 使用lombok方式: import lombok.Synchronized; public class SynchronizedExample...Lombok本质上就是一个实现了“JSR 269 API”的程序。
文章正文 现今之前我无法想象自己使用大量的工具( tools )和类库( libraries )编写java代码。...通过修改编译器的AST,Lombok间接地改变了本身最终的字节码生成。 这种不寻常的同时相当入侵式的方式导致Lombok在传统上被视为有点黑客。...我已经开心的在线上项目(production projects )上使用它好多年了。...最后,要使用电子邮件字段定义的一对equals()和hashCode()方法,我将@EqualsAndHashCode其与相关字段列表(仅在本例中为电子邮件)进行了参数化。...还假设我们想为这些lastName和payingCustomer字段设置一些默认值。 Lombok 实现了一个非常强大的@Builder功能,允许我们使用Builder Pattern来创建新的实例。
Lombok是一个Java包,可以通过注解的形式自动生成代码。通过使用lombok可以减少程序中许多样板代码,使程序更加清晰。由于项目中大量使用了lombok,在此对常用的一些lombok注解做记录。...字段上的@Getter和@Setter可以覆盖类的方法。...添加callSuper = true,让子类生成的方法中包含对父类的equals和hashCode方法的调用。使用@EqualsAndHashCode.Exclude注解让生成方法中不包含某字段。...@RequiredArgsConstructor生成有参构造方法,所有未初始化的final字段,以及未初始化的被标注为@NonNull的字段。...@AllArgsConstructor生成所有字段的构造方法。三个注解都有staticName = "of"参数,可以生成private的构造函数,并使用静态方法of暴露出去。
可以使用@Getter 或 @Setter标注任何字段,lombok 会帮助你自动生成默认的get、set方法。...可以在方法或构造器的参数上使用 @NonNull,lombok会为你生成一个空值检查的声明。...它将使用所有非静态,但是可以通过使用@ EqualsAndHashCode.Include或@EqualsAndHashCode标记类型成员来修改使用的字段。...与同步一样,注释只能在静态和实例方法上使用。...它的操作类似于synchronized关键字,但是它锁定在不同的对象上 使用lombok方式: import lombok.Synchronized; public class SynchronizedExample
,就是为该类产生无参的构造方法和包含所有参数的构造方法,第二个注解则使用类中所有带有@NonNull注解的或者带有final修饰的成员变量生成对应的构造方法,当然,和前面几个注解一样,成员变量都是非静态的...另外,如果类中含有final修饰的成员变量,是无法使用@NoArgsConstructor注解的。...备注:如果所有字段都没有@nonNull注解,那效果同NoArgsConstructor @Builder 提供了一种比较推崇的构建值对象的方式 非常推荐的一种构建值对象的方式。...并且不能使用在全局变量上,只能使用在局部变量的定义中。...@builder注解影响设置默认值的问题 例子如下,本来我是想给age字段直接赋一个默认值的: 没有使用lombok,我们这么写: public static void main(String[]
一个更直接的体现就是,普通的包在引用之后一般的 IDE 都能够自动识别语法,但是 Lombok 的这些注解,一般的 IDE 都无法自动识别,因此如果要使用 Lombok 的话还需要配合安装相应的插件来支持...@ToString 该注解需应用在类上,为我们生成 Object 的 toString 方法,而该注解里面的几个属性能更加丰富我们想要的内容, exclude 属性禁止在 toString 方法中使用某字段...,而of属性可以指定需要使用的字段,如下图: ?...的属性,同样该注解也可以通过 exclude 属性排除某些字段,of 属性指定某些字段,也可以通过 callSuper 属性在重写的方法中使用父类的字段,这样我们可以更灵活的定义bean的比对,如下图:...@NonNull 该注解需应用在方法或构造器的参数上或属性上,用来判断参数的合法性,默认抛出 NullPointerException 异常 ?
的@RestController 注解 一个更直接的体现就是,普通的包在引用之后一般的 IDE 都能够自动识别语法,但是 Lombok 的这些注解,一般的 IDE 都无法自动识别,因此如果要使用 Lombok...,为我们生成 Object 的 toString 方法,而该注解里面的几个属性能更加丰富我们想要的内容, exclude 属性禁止在 toString 方法中使用某字段,而of属性可以指定需要使用的字段...,如下图: 查看编译后的Employee.class得到我们预期的结果,如下图 @EqualsAndHashCode 该注解需应用在类上,使用该注解,lombok会为我们生成 equals(Object...属性在重写的方法中使用父类的字段,这样我们可以更灵活的定义bean的比对,如下图: 查看编译后的Employee.class文件,如下图: @NonNull 该注解需应用在方法或构造器的参数上或属性上...@NonNull 的属性做非空校验。
你还可以在类上添加@Getter和/或@Setter注释。在这种情况下,就好像你使用该注释来注释该类中的所有非静态字段一样。...你始终可以使用特殊的AccessLevel.NONE访问级别来手动禁用任何字段的getter / setter生成。这使你可以覆盖类上的@Getter,@Setter或@Data注释的行为。...所有未初始化的final字段都会获取一个参数,以及所有未声明其位置的未标记为@NonNull的字段。 @AllArgsConstructor为类中的每个字段生成一个带有1个参数的构造函数。...标有@NonNull的字段将对这些参数进行空检查。...字段以及所有非final字段的构造函数没有使用@NonNull标记的初始化程序,以确保该字段永远不会为null。
构造函数不用写了 一、全参构造器不用写了 当你在你的类上使用了Lombok的注解 AllArgsConstructor时: @AllArgsConstructor public class Course...this.id = id; this.name = name; this.score = score; } } 二、无参数构造器也不用写了 当你在你的类上使用了...public Course() { } } 三、部分参数构造器也不用写了 当你在你的类上使用了Lombok的注解 RequiredArgsConstructor时: @RequiredArgsConstructor...public Course(String name) { this.name = name; } } 因为 name字段定义成 final,所以 Lombok自动会帮你生成一个部分参数的构造器...null判空不用写了 Lombok的 @NonNull注解可以自动帮我们避免空指针判断。
1.Lombok是什么 Lombok是使用java编写的一款开源类库。其主作用是使用注解来代替一些具有格式固定,没有过多技术含量的编码工作。...Lombok 引入 2、POM 中引入依赖 使用 Lombok 注解需要依赖它的库。...通过 IDE 找方法调用处也可以直接锁定到字段上,以前要点两下才能看到字段明细信息,使用 Lombok 点一下就能达到效果。...4.1 Lombok 使用注意 不建议直接使用 @Data 这种大而全的方式覆盖太多的简化场景。 toString 场景不建议使用 Lombok 的,建议使用系统自定义 ToString 里的方法。...Lombok 原理 自 JDK6 之后,javac 在执行的时候会调用实现了 JSR 269 API 的程序,这样我们就可以对编译器做一些增强,这时 javac 执行的过程如下: Lombok 本质上就是一个实现了
在编程上,Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。...Lombok官网 github地址 ---- Lombok优点: 提高编码效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 注:IDE上必须要支持Lombok,否则IDE会报错。...---- Lombok注解 Lombok 常用的注解: 注解 描述 @Getter / @Setter 可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter...---- 使用Lombok时需要注意的点 在类需要序列化、反序列化时或者需要详细控制字段时,应该谨慎考虑是否要使用Lombok,因为在这种情况下容易出问题。...在@EqualsAndHashCode注解中我们使用of属性指定只对比对象中id这个字段,所以生成的equals和hashcode只使用id这个字段作为因子,默认不指定的情况下是使用对象中所有的字段作为因子