BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Java 7需要类型推断吗?

| 作者 Scott Delap 关注 0 他的粉丝 ,译者 Jason lai 关注 0 他的粉丝 发布于 2007年4月20日. 估计阅读时间: 2 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

请点击此链接查看英文原文

连续几周以来,Java社区一直为是否向Java 7加入类型推断(Type Inference)的概念争论得热火朝天,Remi Forax撰写了一篇博客文章详细阐述对两个很有人气的提议的javac补丁。其中一个提议来自James Gosling,称为“Algol”,使用:=的语法来标识声明:

s := "String";

另一个提议来自Peter Ahe和Christian Hansen,使用final关键字:

final s = "String";

两种提议都存在副作用,都会使局部变量变成final。有不少开发人员对这个特性持反对意见

在某些语言中,类型推断确实存在意义,比如JavaScript和PHP就是围绕着它构建的,它们自打诞生第一天就具备这个特性 了。但是,它对于Java这样围绕着其相反方式构建的语言而言,毫无意义。看起来它好像让Java类型变得弱化了,但事实上并非如此。实际上,如果有什么 不同的话,那就是它会使得Java变得更加强类型,因为比如说你必须指名一个Map变量的类型为HashMap或者TreeMap,而仅仅是Map……该 是时候停止往Java语言内加入新特性了。我不是说这些特性不对,而只是说它们不适合这门语言。Java语言早就浮肿不堪了。我不是说泛型 (Generics)、类型推断、闭包(Closures)、编译器创建的工厂方法和其它Kitchen Sink提案搞糟透顶,它们不是那样的。我只是说它们仅仅不适合或者符合目前的核心语言,我们每加进一个,语言就变得更糟,而不是更好。

讨论引出这样的一个问题:到底Java 7应当让Java语言保持原样,还是应当另外加入一些语言构造,比如类型推断和闭包呢?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

事务发展的必然 by hower eisen

任何事物都是从幼稚简单变为成熟,从成熟变为臃肿,从臃肿变为腐朽。JAVA也不能逃脱定数啊。。。。

Re: 事务发展的必然 by Hailong Zhang

我也觉得Java不需要什么新的语言特性了。应该把速度和各平台的通用性做做好。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT