局部变量类型推断:val和var
2023-12-13 18:28:53
翻项目代码,好多地方在用val定义变量,这里整理下。
1、lombok的val
//用法
val filePath = filePo.getFilePath();
-
val是Lombok提供的
-
val的使用场景是懒得写变量类型时,或者其初始化表达式类型很直观时,否则太影响可读性
-
val是用来声明局部变量的,它会根据赋值号后面的表达式来推断变量类型,因此初始化表达式必填
-
val声明的局部变量都是final的
-
val不能用于成员变量
-
val可用于foreach循环
for( var element : list){
//....
}
2、Lombok下的var
类似Lombok的val,但其修饰的变量不是final的。
var code = "123";
//...
code = "456";
3、Java 10的var
Java的var,和Lombok的var类似,其变量也不是final的。但注意其Since Java 10。
4、复习
前面一直提到final,这里再顺带复习下这个关键字:
- final修饰的类无法继承
- final修饰的方法无法覆盖
- final修饰的变量只能赋值一次
- 因此,final修饰的变量是引用时,指向的对象不能再变,但对象内部的属性和引用值无关,可修改
- final修饰的实例变量必须手动初始化,Java不会给类型默认值
- final修饰的实例变量,说明所有对象的这个属性值都一样,因此,一般配合static使用,即常量
文章来源:https://blog.csdn.net/llg___/article/details/134920995
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!