赞
踩
官方文档:https://projectlombok.org/features/index.html
Lo~mbok是一个很牛批的插件(本质是个Java库),项目里一旦引入了Lombok
神器之后,你项目中所有诸如:对象的构造函数、 equals()
方法,属性的 get()/set()
方法等等,这些没有技术含量的代码统统都不用写了,Lombok
帮你搞定一切,全部帮你自动生成!
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
引入依赖之后,需要在idea
中添加 Lombok
插件。具体步骤可以参考这篇博客的安装插件环节:https://blog.csdn.net/qq_41853447/article/details/103889404
public static void main(String[] args) {
getInfo("领域驱动设计"); //能通过@NonNull校验
getInfo(""); //能通过@NonNull校验
getInfo(null); //不能通过@NonNull校验了
}
public static void getInfo(@NonNull String title){
System.out.println("图书名称是:"+title);
}
public class ImageCodeValidateFilter {
public static void main(String[] args) {
new Book().getPrice();
new Book().setPrice(); //可以使用Book类的getter和setter方法
}
}
@Getter
@Setter
class Book{
private static final long serialVersionUID = 1L;
private String title ;
private double price ;
}
为单独的属性添加 getter和setter方法
public class ImageCodeValidateFilter {
public static void main(String[] args) {
new Book().setTitle("lombok学习");
new Book().setPrice(45.33);
}
}
class Book{
@Getter
@Setter
private String title ;
@Getter @Setter private double price ;
}
/** * OncePerRequestFilter: 所有请求之前被调用一次 */ public class ImageCodeValidateFilter { public static void main(String[] args) { new Book(); //Book对象存在无参构造方法 } } @NoArgsConstructor @Getter @Setter class Book{ private static final long serialVersionUID = 1L; private String title ; private double price ; /** * 生成一个有参构造,默认的无参构造就会消失 * @param title */ public Book(String title){ this.title = title; } }
public class ImageCodeValidateFilter { public static void main(String[] args) { //Book对象存在全部参数构造方法 new Book("java开发",34.23); } } @NoArgsConstructor @AllArgsConstructor @Getter @Setter class Book{ private static final long serialVersionUID = 1L; private String title ; private double price ; /** * 生成一个有参构造,默认的无参构造就会消失 * @param title */ public Book(String title){ this.title = title; } }
@Data
: 自动为所有字段添加@ToString
, @EqualsAndHashCode
, @Getter
方法,为非final
字段添加@Setter
,和@RequiredArgsConstructor!
@Slf4j
避免我们在书写 Logger logger = LoggerFactory.getLogger(getClass());
了。
@Slf4j
public class ImageCodeValidateFilter {
public static void main(String[] args) {
log.info("调用了该方法");
}
}
@ToString
添加 toString
方法@Builder
让创建对象更优雅@Builder
注解就是一个典型的“建造者模式”的实现案例
public class ImageCodeValidateFilter {
public static void main(String[] args) {
Book book = Book.builder().title("lombok开发").price(45.34).build();
System.out.println(book);
}
}
@Builder
@ToString
class Book{
private String title ;
private double price ;
}
还有很多注解,现在只介绍常见的就可以了。
@EqualsAndHashCode
:为类自动生成hashCode和equals实现@Log
:为类自动生成log日志记录@Synchronized
:为类方法或实例方法自动生成synchronized保护Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。