什么是局部变量类型推断?

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());

最新文章

  1. Sublime Text 3 Emmet插件安装
  2. 你写的Try...Catch真的有必要么?
  3. Android BLE 蓝牙编程(四)
  4. 基于jquery上的轻量级《数据模板解析》插件
  5. AngularJS中的digest循环$apply
  6. (转)FirstResponder 释放问题
  7. lintcode:合并两个排序链表
  8. pipe----管道
  9. 【安装Python环境】之“安装 setuptools ”时出现的问题以及解决办法
  10. 关于Tomcat无法启动的问题(Server Tomcat v7.0 Server at localhost failed to start.)
  11. [转载] Linux curl命令详解
  12. Python当前文件路径与文件夹删除操作
  13. 【STM32H7教程】第4章 STM32H7工程模板建立(MDK5)
  14. Linux学习_012_Centos 6.8 安装 Netcat
  15. std::vector&lt;bool&gt; 在 auto 推断下的返回值是 bool &amp; 引用
  16. 重写COMBOXEDIT
  17. Openwrt配置小记
  18. KBEngine 编译出现 MSB802 无法找到v140的生成工具
  19. PID file /run/zabbix/zabbix_server.pid not readable (yet?) after start. 报错解决
  20. C# winform combobox默认选中项方法

热门文章

  1. 07-Vue的基础使用
  2. SQL Server Mirror 断开后,删除副本上镜像数据库
  3. AngularJS学习之旅—AngularJS 控制器(六)
  4. Dynamics 365 CRM 开发架构简介
  5. django 视图模式
  6. Windows Service 学习系列(三)——循环引擎 ICycleEngine
  7. .NET CORE学习笔记系列(2)——依赖注入[6]: .NET Core DI框架[编程体验]
  8. Kafka集成Kerberos之后如何使用生产者消费者命令
  9. ElasticSearch(九):elasticsearch-head插件安装
  10. web框架开发-Django模型层(2)-多表操作