Java10新特性

局部变量类型推断

    

Applicabilityand impact

Scanningthe OpenJDK code base for local variable declarations, we found that 13% cannotbe written using var, sincethere is no initializer, the initializer has the null type, or (rarely) theinitializer requires a target type. Among the remaining local variabledeclarations:

94%have an initializer with the exact type present in the source code (63% ofcases with parameterized types)

5%have an initializer with some sharper denotable type (29% of cases withparameterized types)

1%have an initializer with a type that mentions a capture variable (7% of caseswith parameterized types)

<1%have an initializer with an anonymous class type or intersection type (same forcases with parameterized types)



嗯,开头就英文,头疼?不管看不看得懂,请君往下看!!!

重要的事情说三遍,往下看,往下看,往下看!

上面的英文都是从Java官网复制下来的

先说说它的适用范围(上面英文总结):

适用:1.局部变量初始化

2.    for循环内部索引变量

3.    传统的for循环声明变量

代码实现:



不适用:1.方法参数

2.构造函数参数

3.方法返回类型

4.类成员变量类型

代码实现:





代码看完,是不是有点像JS里面的感觉?

其他语言对局部变量类型推断的支持(C++——auto,C#——var,Scala——var/val)

 

看完这么多,局部类型变量到底是什么:英文又来了~~啦啦  嘻嘻     

 

有道翻译君(展现实力):|>

局部变量类型推断

局部变量类型推断减少了使用范围仅包含单个Java模块的变量所需的一些开销。作为一种设计原则,Java要求显式地键入所有变量——也就是说,程序员必须非常清楚地声明变量将包含的数据类型。这确保使用变量的每个模块或类以相同的方式解释其内容。这个被称为“类型安全”的原则最小化了运行时错误。但是,在单个模块内部可以严格使用更多的变量,比如循环迭代器,或者在复杂计算中包含中间值的变量。显式地输入这些变量不仅耗时,而且可能会导致程序员的人为错误。使用本地变量类型推断,程序员只需使用特殊语法启动变量,然后Java编译器从上下文推断类型。更少的代码加上更少的错误等于更快乐的开发人员。

 

优缺点:

优:减少代码的冗长。

缺:数据类型不明确

 

说了这么多,应该明白了吧。

其实我说的没几句 ~O(∩_∩)O哈哈~. 借鉴借鉴~ 偷笑 偷笑


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值