var
不会影响性能
请记住,在 Java 中,类型不是在运行时推断的,而是在编译时推断的。
这意味着生成的字节码与显式类型声明相同,它确实包含有关类型的信息。
这意味着在运行时没有另外的处理。
var
不是关键字
虽然看起来像,var
不是保留的 java 关键字。
因此,我们可以创建名称为“var”的变量,这是允许的。
var var = 10; //Valid Declaration int var = 10; //Also valid Declaration
var
同时声明和初始化
使用 var
时,你必须在同一个地方初始化变量。
我们不能将声明和初始化放在不同的地方。
如果我们没有就地初始化变量,那么我们将收到编译错误 Cannot use 'var' on variable without initializer
。
var i; //Invalid Declaration - - Cannot use 'var' on variable without initializer var j = 10; //Valid Declaration System.out.println(i);
当我们使用 var
声明变量时,基本上,它不是声明变量类型,而是根据其设置的类型假定其类型。
例如
var str = "Hello world"; //or String str = "Hello world";
在上面的例子中,在第一条语句中,你将一个 String
设置为变量 str
,因此它被隐式假定为 String
类型。
第一条语句本质上等同于上述示例中的第二条语句。
欢迎 on
it
road
var
用法
使用 var 仅限于带有初始值设定项的局部变量、增强的 for 循环中的索引以及在传统 for 循环中声明的局部变量;它不适用于方法形式、构造函数形式、方法返回类型、字段、捕获形式或者任何其他类型的变量声明。
Java var 可以用在
- 带有初始值设定项的局部变量
- 增强的 for 循环中的索引
- 在传统的 for 循环中声明的局部变量
var siteName = "onitroad.com"; for ( var object : dataList){ System.out.println( object ); } for ( var i = 0 ; i < dataList.size(); i++ ){ System.out.println( dataList.get(i) ); }
Java var 不可以用在
- 方法参数
- 构造函数参数
- 方法返回类型
- 类字段
- 捕获形式(或者任何其他类型的变量声明)
public class Application { //var firstName; //Not allowed as class fields //public Application(var param){ //Not allowed as parameter //} /*try{ } catch(var ex){ //Not allowed as catch formal }*/ /*public var demoMethod(){ //Not allowed in method return type return null; }*/ /*public Integer demoMethod2( var input ){ //Not allowed in method parameters return null; }*/ }
日期:2020-09-17 00:09:45 来源:oir作者:oir