今天来介绍一款Java常用插件:Lombok
Lombok
https://projectlombok.org/
通常在用Java代码开发项目过程中,都会建立各种各种的Bean类,如下:
public class SearchReq {
private String searchParam;
private int number;
private boolean valid;
public String getSearchParam() {
return searchParam;
}
public void setSearchParam(String searchParam) {
this.searchParam = searchParam;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public boolean isValid() {
return valid;
}
public void setValid(boolean valid) {
this.valid = valid;
}
}
我们新建一个Bean后,通常都会给这个增加各种各样的setter和getter方法;
而Lombok这款插件可以让我们的代码变得简洁清爽,而且功能也能满足需求,如下所示:
import lombok.Data;
@Data
public class SearchReq {
private String searchParam;
private int number;
private boolean valid;
}
我们引入lombok插件后,对Bean类增加了@Data注释,这就相当于给类默认增加了setter和getter方法,但是代码直接从20多行缩到了10行以内,类的成员变量越多,感受会越明显。
另外还有一个好处,就是不用再头疼单元测试的覆盖率了,在开发的过程中,我们会同步去写很多单元测试来保证程序功能的正确性,但是像setter和getter这种方法通常会因为没有被调用到而导致覆盖率会偏低。
假设我们有下面一段测试用例:
import org.junit.jupiter.api.Test;
public class SearchReqTest {
@Test
public void testBean(){
SearchReq searchReq = new SearchReq();
System.out.println(searchReq.getSearchParam());
System.out.println(searchReq.getNumber());
System.out.println(searchReq.isValid());
}
}
在没有用lombok插件的情况下:
我们通过图片的右侧发现覆盖率在50%左右,图片的左侧可以看到setter方法并没有覆盖到,因此覆盖率受影响了,而实际情况是setter方法可能是不需要去覆盖单元测试的,因为代码逻辑中并没有用到。
这时候我们再来看下使用lombok插件的情况:
可以看到代码覆盖成100%了,尽管setter方法也没有覆盖到,依旧不影响代码覆盖率,所以lombok不仅可以使代码变得简洁,提高开发效率,也很好地避免了代码覆盖率误报的问题。
Lombok的使用方式:
第1步:pom.xml中引入lombok插件
org.projectlombok
lombok
1.18.22
compile
第2步:在Idea中安全lombok插件
Idea插件
留言与评论(共有 0 条评论) “” |