今天看代码,发现idea报错,仔细一看调用的get,set方法bean中都没有,可是运行起来却没有问题,这个让我很疑惑。后来发如今类上有一个之前没见过的注解@Data,大概就是由于有他的缘由。这个注解来自于lombok。ide
咱们使用lombok的注解时,例如使用@Data,咱们不须要再代码中再显示的写get,set方法等,当咱们使用的时候能够直接使用注解给咱们生成的get,set方法,可是此时idea是不知道这个注解的做用的,会误报没有这个方法,因此你会看到idea疯了同样的处处报错。为了解决这个问题,咱们须要在idea中安装插件lombok plugin(直接在idea的prefrences->plugin里搜索就能够找到)。安装完重启idea问题就解决了。函数
下面咱们来看一下lombok中都有哪些好用的注解ui
@NonNull : 注解在参数上, 若是该类参数为 null , 就会报出异常, throw new NullPointException(参数名)idea
@Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法插件
@Getter/@Setter : 注解在类上, 为类提供读写属性日志
@Getter(lazy=true) :实际使用到的时候生成对象
@ToString : 注解在类上, 为类提供 toString() 方法资源
@EqualsAndHashCode : 注解在类上, 为类提供 equals() 和 hashCode() 方法get
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 注解在类上, 为类提供无参,有指定必须参数, 全参构造函数同步
@Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法
@Value :@Data相似,区别在于它会把全部成员变量默认定义为private final修饰,而且不会生成set方法。
@Builder : 注解在类上, 为类提供一个内部的 Builder
@Synchronized : 注解在方法上, 为方法提供同步锁
@Log4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
@Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象