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. xdoj 1144 K叉哈弗曼树
  2. 使用 Trace32 对 FLASH 编程
  3. 3-3-完全二叉树结点数
  4. vue异步数据 报错_vue中异步请求数据,异步请求还没完成,文件就执行了就会报错,怎么解决?...
  5. MPU6050开发 -- 卡尔曼滤波
  6. boost::local_time模块实现创建各种dst_calc_rule的测试程序
  7. 1564: Strange Class
  8. 编写CGI小结(Java)
  9. Java 8的烹调方式–拼图项目
  10. 一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!...
  11. vb的VSFlexGrid控件
  12. (连续子序列)唯一的雪花
  13. Zabbix 监控 MySQL
  14. mysql syncrelaylog_MySQL 5.7复制延迟之sync_relay_log
  15. Java面向对象 Main函数 静态的应用 单例设计模式
  16. python for spss statistics_IBM SPSS Statistics 与用户自定义 Python 模块的集成及分析
  17. SpringMvc从入门到入魔
  18. java excel 数组公式_教你如何快速学习Excel数组公式及运用
  19. 网络安全形势严峻:国内黑灰产业产值达千亿
  20. Chrome浏览器获取Google搜索结果批量URL

热门文章

  1. 【Hexo】静态博客设置文章加密访问
  2. 简述SCA及SCA和SOA的关系
  3. 人力资源行业发展历程
  4. 高德地图联手达摩院推车载AR导航,百度地图这次彻底赶不上了!
  5. 拥抱 Java 8 并行流:执行速度飞起
  6. 有哪些工具可以将PDF转换成CAD图纸?
  7. 英语语法精髓,10来节课补完初中,高中英语所有语法,彻底颠覆传统
  8. 微信公众平台实战开发视频下载
  9. 自己电脑发布网站到外网实现过程
  10. 10a大电流稳压芯片_24V大电流直流稳压电源400V10A线性直流可调电源-山东航能