Lombok资源
Lombok官网:
Lombox下载地址:
GitHub官方账号:
我的码云Lombok测试源码:
Lombok官方接口文档:
IntelliJ IDEA安装Lombok
在File > Settings > Plugins
点击Browse repositories
,搜索Lombok
插件,点击Install plugin
,安装完后重启即可,如下所示即为安装成功后的界面。
Lombok特性
val
您可以使用val作为本地变量声明的类型,而不是实际地编写类型。当您这样做时,类型将从初始化器表达式中推断出来。局部变量也将被最终确定。这个特性只适用于局部变量,只针对每个循环,而不是在字段上。需要初始化器表达式。
val
实际上是一种“类型”,在Lombok
包中作为真正的类存在。您必须将其导入到val
中才能工作(或者使用Lombok.val
的类型)。在局部变量声明中存在这种类型,会触发final
关键字的添加,以及复制“伪”val
类型的初始化表达式的类型。
警告:这个特性目前还没有在NetBeans中使用。
val接口测试源码如下:
package com.lyc.lombok;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.junit.Assert;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@Slf4j
public class ValExample {
/**
* 将"Hello,World!"中的大写字母转换成小写字母"hello,world!"
*/
@Test
public void testVal(){
//初始化相关数据
val example = new ArrayList<String>();
example.add("Hello,World!");
//输出
example.forEach((String s) -> log.info(s.toLowerCase()));
//验证
example.forEach((String s) -> Assert.assertEquals("hello,world!",s.toLowerCase()));
}
@Test
public void testVal2(){
//初始化相关数据
val map = new HashMap<Integer, String>();
val list = Arrays.asList("0:zero","5:five");
val list2 = new ArrayList<String>();
map.put(0, "zero");
map.put(5, "five");
map.forEach((k,v) -> {
list2.add(k + ":" + v);
});
//输出
map.forEach((k,v) -> log.info(k + ":" +v));
//验证
Assert.assertEquals(list,list2);
}
}
分析
上述第一个方法testVal()
中实现的功能是用Lombok
中的val
创建一个ArrayList<String>
容器,我们将该容器中首字母大写的字符串“Hello,World!”转换成全部小写的“hello,world!”,转换成功后,在控制台中输出的内容如下:
2018-01-09 15:31:15.320 [main] INFO com.lyc.lombok.ValTest - hello,world!
上述第二个方法testVal2()
实现的功能是用Lombok
中的val
创建一个HashMap<Integer, String>
容器,在容器中我们放入相应的元素,然后我们再将其打印到控制台中,输出的结果如下:
2018-01-09 15:34:07.955 [main] INFO com.lyc.lombok.ValTest - 0:zero
2018-01-09 15:34:07.958 [main] INFO com.lyc.lombok