前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这是你在苦苦找寻的资料吗

这是你在苦苦找寻的资料吗

作者头像
PhoenixZheng
发布2018-08-07 16:40:42
3310
发布2018-08-07 16:40:42
举报

趁着Java10发布的时候,小编将整理的有用的学习资料分享给大家,希望能有帮助。 下面说说刚发布的Java10.

Java 10来了

Alt text

技术的进步一直很快,我们还在用Java7,Java10就已经推出了。

就在上周3月20号,带有109项新特性的Java10发布了,今天介绍它其中一个主要特性,Local-variable type inference

局部类型变量判断

有JS开发经验的同学对 var 肯定不陌生,Java10也引入了这个语法,

代码语言:javascript
复制
var bean = new ArrayList<Bean>();

作为一名Java撸手,我们经常要写冗长的变量声明语句,特别是在企业级代码中,为了区分功能和模块,经常会造几个单词拼起来的类,比如下面这样

代码语言:javascript
复制
InternationalAdvBean bean = new InternationalAdvBean()

因为Java是强类型语言,在Java10之前都不能避免写大段的变量声明代码。然而有其他高级语言开发经验的人会明白,其实这部分类型声明可以让编译器替我们推测。

Oracle 考虑到了这点,在最新的版本中引入了这个特性,让编译器替开发者推测变量的类型。而免去前面的强类型声明。

这个改动带来很多好处,举个例子,在企业级开发中我们经常会遇到一些坑爹的类,因为跟具体业务需求有关所以类名一言难尽… 而Java10会在编译时替我们猜出变量的类型,就像这样

代码语言:javascript
复制
var intal = new InternationalAdvBean();
var local = new LocalAdvBean();
var connection = NetworkManager.getConnection();

代码是不是变的简洁很多? 不过新的语法糖也带来了一些问题,比如上面第三个语句,我们无法一下子就得知connenction的类型,只能通过查看getConnection方法或者通过IDEA来得知它的类。

当然这个语法不是万能的,只能用在局部变量。

适用范围

· 局部变量 正如这个feature的名字所示,它只能用在声明局部变量中。更准确的说是有构造器的局部变量声明。像下面这样是不行的

代码语言:javascript
复制
var value;
value = "foo";

当然,如果作为方法类型的返回值,也是不可以,

代码语言:javascript
复制
private var getString(){}

· 循环 除了局部变量,用来作为for循环的变量声明也是允许的,

代码语言:javascript
复制
for(var name : nameList) {
    println("name: " + name);
}

这种限制的设定,主要是考虑变量在全局范围内可能被意外修改,如String被意外赋值为int,导致程序错误。

Java10 还有其他很多的特性,如果你感兴趣的话,可以点击下方链接,查看官方的文档说明。新的feature很多,这里就不一一介绍了。

Java10新特性

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Android每日一讲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java 10来了
  • 局部类型变量判断
  • 适用范围
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档