Java 8 之后,还有哪些进化的功能?( 二 )
有了它,我们就可以在定义局部变量时省略类型定义,减少繁文缛节:
尽管看上去这很像JavaScript的var关键字,但它并不是动态类型。
引用如下JEP的一段话:
我们希望通过减少编写Java代码时的繁文缛节来改善编程的体验,同时维持Java的静态类型安全。
这样定义的变量的类型会在编译时进行推断,上述示例中推断的类型为String。使用var而不是显式指定类型,可以让代码更加简洁,故而可以提高代码的可读性。
下面是类型推断的另一个例子:
显然,知许多情况下这个特性都可以改进代码质量。但是,有时候还是使用显式类型定义更好。我们来看看一些不宜使用var替换类型定义的情况。
随时考虑可读性
第一种情况就是从源代码中删除类型定义可能会降低可读性的情况。
当然这种情况还可以借助IDE,但在代码审核过程中,或者需要快速阅读代码的情况下,这样做就可能影响可读性。比如工厂模式,你只能去寻找负责生成对象的代码来确定生成的对象类型。
推荐阅读
- 明日之后|明日之后:唯一一次无差评的联动玩法,萌新可能没见过!
- 手机游戏|酒馆战棋:全员恶霸,对5星随从已经过时?新英雄还有新玩法!
- 今屿|今屿媲美花海,小胖回归还有位置吗?李九:小胖不出,花海无敌
- 黑暗与光明|炉石传说英雄卡,曾经强度T0,两年过去,还有人记得雷诺吗?
- 暴雪|暴雪新总裁刚上任3个月就离职,这一次,暴雪还有救吗
- 吃鸡游戏|“吃鸡”高达天降模式的隐藏玩法!不仅可以打卡,而且还有物资!
- |原神梦里生花,可以改变稻妻的样子了,还有420钻,胡桃在等你哦
- 阴阳师|除了爱玩游戏的新岛民,《动物森友会》新版本还有一个电竞彩蛋
- 猪八戒|王者荣耀:李元芳为什么突然间强势了起来?很久没加强,还有天敌
- 明日之后|明日之后“人尸大战”展现中国精神:人类的未来我们共同争取