java 类型推导_java 10 的变量类型推导(Local Variable Type Inference )

其实说到变量类型推导,我们很容易连联想到一些脚本语言,在(http://openjdk.java.net/jeps/286)中,java提出这个新特性。

Enhance the Java Language to extend type inference to declarations of local variables with initializers.

记得在入门 Java 的时候,觉得就像 C++ 的加强版,在 Java 最开始的版本中,一直都是强类型语言,需要在声明变量的时候规定是什么类型。然后有些人觉得 Java 是一种冗长的语言,需要一种精确、简洁的方式来编写Java代码。其实我觉得这样不是也挺好的哈。Java 7 在某种程度上解决了这个问题。Java 10添加了带有初始化器的局部变量类型推断,以消除冗长。

然后我们可以先安装一下,openjdk10,可以在这个网址下载(http://jdk.java.net/10/)

wget https://download.java.net/java/GA/jdk10/10.0.1/fb4372174a714e6b8c52526dc134031e/10/openjdk-10.0.1_linux-x64_bin.tar.gz

0e6c37df00e9e82dbb803b0aaaf2a901.png

然后解压 tar xvf openjdk-10*_bin.tar.gz 配置一下就好了,参考(https://blog.csdn.net/felix_ghc/article/details/52291381)

vi /etc/profile

加入以下内容,然后 source /etc/profile

07987ae92373c09ac6573b183f5f2b93.png

然后看看当前的 Java 版本

7e6804133ce846e89eb6b6a7b38ee668.png

然后使用 Jshell 来用用,果然是可以这么写的,使用 var 来定义变量名

9d72838bb031bf96e3184d3d35e034f2.png

1cf36492e8b438daa2dfe346e140a702.png

但是这种类型推导,并不适合以下这种类型推导

c88056e64b65e2e19c065b65f5894107.png

然后我们还可以试试这种for each,当然 for (var i=0;i

0b1bc4de0ba9e7de4555aa11a997e6b4.png

在某些情况下,此功能不能有效使用:

构造函数的参数

方法的参数

null 也是不行的

return 类型也是不行的

还有类的属性字段

45dbca902704ef17028bd65bdb28328a.png

1765310a0f91f0568341e2a2a652576a.png

参考:

https://dzone.com/articles/java-10-local-variable-type-inference

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值