java 11 局部变量类型推断
2024-08-31 00:52:15
什么是局部变量类型推断?
var javastack = "javastack";
System.out.println(javastack);
大家看出来了,局部变量类型推断就是左边的类型直接使用 var 定义,而不用写具体的类型,编译器能根据右边的表达式自动推断类型,如上面的 String 。
var javastack = "javastack";
就等于:
String javastack = "javastack";
在声明隐式类型的lambda表达式的形参时允许使用var
使用var的好处是在使用lambda表达式时给参数加上注解
(@Deprecated var x, @Nullable var y) -> x.process(y);
var 语法 : 局部变量的类型推断.
注意点 :
1) var a; 这样不可以, 因为无法推断.
2) 类的属性的数据类型不可以使用var.
有参数的lambda表达式使用
函数式接口 :
Consumer : 消费型函数式接口.
public void accept(T t);
Consumer<String> consumer = t -> System.out.println(t.toUpperCase());
Consumer<String> consumer = (var t) -> System.out.println(t.toUpperCase());
错误的形式: 必须要有类型, 可以加上var
Consumer<String> consumer = (@Deprecated t) -> System.out.println(t.toUpperCase());
正确的形式:
Consumer<String> consumer = (@Deprecated var t) -> System.out.println(t.toUpperCase());
最新文章
- Sublime Text 3 Emmet插件安装
- 你写的Try...Catch真的有必要么?
- Android BLE 蓝牙编程(四)
- 基于jquery上的轻量级《数据模板解析》插件
- AngularJS中的digest循环$apply
- (转)FirstResponder 释放问题
- lintcode:合并两个排序链表
- pipe----管道
- 【安装Python环境】之“安装 setuptools ”时出现的问题以及解决办法
- 关于Tomcat无法启动的问题(Server Tomcat v7.0 Server at localhost failed to start.)
- [转载] Linux curl命令详解
- Python当前文件路径与文件夹删除操作
- 【STM32H7教程】第4章 STM32H7工程模板建立(MDK5)
- Linux学习_012_Centos 6.8 安装 Netcat
- std::vector<;bool>; 在 auto 推断下的返回值是 bool &; 引用
- 重写COMBOXEDIT
- Openwrt配置小记
- KBEngine 编译出现 MSB802 无法找到v140的生成工具
- PID file /run/zabbix/zabbix_server.pid not readable (yet?) after start. 报错解决
- C# winform combobox默认选中项方法
热门文章
- 07-Vue的基础使用
- SQL Server Mirror 断开后,删除副本上镜像数据库
- AngularJS学习之旅—AngularJS 控制器(六)
- Dynamics 365 CRM 开发架构简介
- django 视图模式
- Windows Service 学习系列(三)——循环引擎 ICycleEngine
- .NET CORE学习笔记系列(2)——依赖注入[6]: .NET Core DI框架[编程体验]
- Kafka集成Kerberos之后如何使用生产者消费者命令
- ElasticSearch(九):elasticsearch-head插件安装
- web框架开发-Django模型层(2)-多表操作