java 11 局部变量类型推断
Posted 西北野狼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 11 局部变量类型推断相关的知识,希望对你有一定的参考价值。
什么是局部变量类型推断?
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 局部变量类型推断的主要内容,如果未能解决你的问题,请参考以下文章