lombok 的 val 与 var

一. 含义

  • val 和 var 是lombok 提供的语法糖,可以进行类型推断的功能.
  • 您可以将val用作局部变量声明的类型,而不是实际编写的类型.执行操作的时候,将从初始化设定项的表达式推断类型.
  • 此功能仅适用于局部变量和 foreach 循环,不适用于字段.

二. 使用

public class ValDemo {public static void main(String[] args) {/*最终展示 : aba : bb : c*/listDemo();mapDemo();}private static void listDemo() {val example = new ArrayList<String>();example.add("a");example.add("b");for (val s : example) {System.out.println(s);}}private static void mapDemo() {val example = new HashMap<String, String>();example.put("a", "b");example.put("b", "c");for (val entry : example.entrySet()) {System.out.println(entry.getKey() + " : " + entry.getValue());}}
}

三. val 和 var 区别

  • var工作方式与 val完全相同,只是局部变量未标记为final。

四. 配置

  • lombok.var.flagUsage= [ warning| error](默认值:未设置). var如果已配置, Lombok 会将任何用法标记为警告或错误。
  • lombok.val.flagUsage= [ warning| error](默认值:未设置).val如果已配置, Lombok 会将任何用法标记为警告或错误。

五. 版本变更

  • val 是在 lombok 0.10 中引入 , 1.18.22 中将 val 替换为 final var
  • var 在 lombok 1.16.12 中最为实验性功能引入.

六. 参考文献

  • [1] lombok 官方文档

lombok 的 val 与 var相关推荐

  1. Lombok之@Val和@Var使用

    前言: @Val和@Var在开发过程中几乎不会使用到.但是,为了Lombok系列文章的完整性,还是将它写出来了. 读者可根据兴趣选择性学习. 一. 为什么不用@Val和@Var? 为什么不用@Val和 ...

  2. 【Lombok】val 和 var的使用 | 像 JavaScript 一样的去声明变量

    文章目录 一.简介 1. val 2. var 3. 区别 二.示例比较 1. Lombok 写法 2. Java 标准写法 三.支持的配置项 四.附属说明 参考文献 一.简介 1. val val是 ...

  3. 在Scala中评估val,var,lazy val和def构造时

    发表简短目录 (Post Brief TOC) Introduction介绍 Scala 'val' usageScala" val"用法 How Scala 'val' is E ...

  4. val和var和Java

    val和var和Java object Hello{def main(args :Array[String]){var i = 1val k = i}} jvm代码 public final clas ...

  5. scala val 与var 区别

    一个var和VAL定义在Scala之间的区别是什么? 一之间的区别是什么var和val在Scala中定义和为什么的语言都需要?为什么你会选择val在一个var反之亦然? 1. 正如许multiplay ...

  6. scala 中的val 、 var 、def

    断断续续学习scala也有一段时间了,初期总对val 与var 的理解不太透彻,今天来做做总结. 一般都知道val 表示不可变,var表示可变,比如: val s ="hello" ...

  7. val和var的区别

    美图欣赏: 一.背景 学习过程中,会有很多小的并且容易混淆知识点,因此会把它记录下来. 二.val(value)和var(variable)的区别 基本语法: var|val 变量名 : 变量类型 = ...

  8. Kotlin中val和var的区别

    变量可以很简单地定义成可变(var)和不可变(val)的变量.这个与Java中使用的final很相似.但是不可变在Kotlin(和其它很多现代语言)中是一个很重要的概念. 一个不可变对象意味着它在实例 ...

  9. Scala变量定义val与var的区别

    Scala有两种变量:var和val.val类似与Java种的final变量,一旦初始化了,就不能再被赋值.相反,var可以在生命周期内被多次赋值! 同样的代码,我把val改成var编译就没有问题了;

最新文章

  1. ubuntu安装redis的方法以及PHP安装redis扩展、CI框架sess使用redis的方法
  2. python编写ftp客户端_用Python写FTP客户端程序
  3. MULE ESB参考网站所在位置
  4. vuecli3修改html,vue-cli3多页应用改造
  5. [导入]商业智能2.0?(BI 2.0 from Timo Elliott)
  6. linux 无法找到函数定义,找到定义Linux函数的位置
  7. python将图片作为变量_遍历图像列表并在python中将其作为变量分配
  8. Jackson Annotation Examples
  9. 新建linux服务器初始化操作
  10. 笔记本电脑连接打印机_傻瓜操作,轻松搞定工作中各种打印难题,兄弟激光打印机开箱体验...
  11. Python获取指定目录下文件数量及总大小
  12. 战神CPU计算机硬件组装
  13. WIN7无法卸载掉中文繁体注音输入法
  14. lenovo G480 安装无线驱动 linux
  15. eyoucms个人网站去版权
  16. Android应用开发详解
  17. 北京大学计算机801考试大纲,2019年中国科学院大学801高等代数考研初试大纲
  18. Git GUI中文乱码问题解决方法
  19. DxO PhotoLab for Mac(照片编辑软件)
  20. echarts设置视觉引导线穿过两行文字的效果

热门文章

  1. 法拉第未来向SEC承认信息披露不准确、不完整
  2. 虚拟主机怎么导入PHP文件,虚拟主机怎么上传PHP文件到htdocs
  3. 监理工程师岁月--蓝精灵的帽子
  4. golang学习路径(更新中)
  5. chrome扩展程序科学_5 Chrome扩展程序可简化您作为数据科学家的生活
  6. 在校大学生学习云计算好就业吗
  7. 1024 科学计数法 (20分) c/c++代码中有详细解释
  8. Recovery简介
  9. 输入法产品智能化“升维”,AI创新如何成为竞争赛点?
  10. 解决方法:修改GD32F10x例程设备型号后编译时提示“CAN0_RX_IRQn“ has already been declared in the current scope CAN0_RX1...