码迷,mamicode.com
首页 > 编程语言 > 详细

java 11 局部变量类型推断

时间:2019-02-02 23:23:48      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:错误   声明   ted   使用   lam   dep   直接   类的属性   隐式   

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

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

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

java 11 局部变量类型推断

标签:错误   声明   ted   使用   lam   dep   直接   类的属性   隐式   

原文地址:https://www.cnblogs.com/androidsuperman/p/10349256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!