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 局部变量类型推断的主要内容,如果未能解决你的问题,请参考以下文章

jdk11新特性——局部变量类型推断(var ”关键字”)

jdk11新特性——局部变量类型推断(var ”关键字”)

JDK将新增局部变量类型推断功能

局部变量类型推断未被识别

JDK10的局部类型局部变量类型推断功能

java新特性--06--JDK10