java 开发:md5

一个新的JDK增强建议(JEP)在Java社区中风起云涌:JEP286。该建议建议在Java的未来版本中引入局部变量类型推断,以简化Java应用程序的编写。

在下面的文章中,我们将解释它的含义以及它将如何影响您的代码。

新帖:Java社区调查结果:74%的开发人员希望减少详细程度https://t.co/TtxVBiqFAj pic.twitter.com/TEs0VtFnpD

— Takipi(@takipid) 2016年4月13日

提案

新的语言功能建议在Java中添加一些语法糖—简化它并改善开发人员的体验。 新语法将减少与编写Java相关的仪式,同时保持对静态类型安全性的承诺。

换句话说,您无需指定关联的类型就可以声明变量。 Oracle声明该新功能将允许例如以下声明:

var list = new ArrayList<String>();
val stream = getStream();

那将替换当前的语法:

List<String> list = new ArrayList<String>();
final Stream<String> stream = getStream();

如您所见,Local Variable Type Inference将允许使用var关键字,而不是指定变量的类型。

众所周知,Java有点冗长,在阅读和理解您或其他开发人员编写函数时的想法时,这非常有用。 对于那些一直认为这有点乏味的人来说,该提案标志着重大的改变。

该建议与Java 9不相关,因为Java 9正在制定中,并且也会改变您的编码方式 。

去JEP还是不去JEP?

几周前,Oracle Java语言架构师Brian Goetz 发布了这项新建议的调查结果 。 主要问题是:“您总体上对拟议的局部变量类型推断功能有何看法?”。 2,453个开发人员答复,结果我们基本上是肯定的:

您如何看待提议的局部变量类型推断功能?

该调查的第二部分着眼于未来的语法,根据其他语言(例如C#,Scala,Swift,C ++或使用let)的类似用法,建议了5种选择。 大多数用户选择var / val选项:

可能的语法选项

即使大多数用户赞成此新选项,但阅读注释部分仍会显示开发人员赞成此更改,要求Oracle“与时俱进”,指出此更改应仅适用于val,甚至要求更多更改,例如作为多行字符串。

我的生日只有几个星期,但这是有史以来最好的礼物之一! https://t.co/QVtXwUPwEG
原声带: https : //t.co/dIpLKLFFEE

— Erik Meijer(@headinthebox) 2016年3月10日

反对该建议的开发人员声称,对于那些刚开始使用Java的人来说可能会很困难,或者指出现有语法是“冗长和易读性的正确组合”,而“ diamond运算符是一个不错的选择。行动”,与目前的提案不同。

不要责怪语言功能使开发人员编写糟糕的代码。 责怪卑鄙的开发者! JEP286对于Java #var #val来说是一件很棒的事

— Simon Maple(@sjmaple) 2016年3月13日

这种变化来自何处?

关于Java的最常见的抱怨之一是编写Java所需的样板代码数量。 几行Java代码可以用其他语言(例如C ++,C#,Scala和Go)用一行编写。

尽管类型推断不是Java中的新概念,但它是局部变量的新概念。

它是在Java 7中(作为Project Coin的一部分)通过菱形运算符(<>)引入的,该运算符允许在没有类型绑定ArrayList <>的情况下初始化列表,而在Java 8中是使用Lambda Formals引入的。 例如,使用菱形运算符可以编写以下代码:

List<String> list = new LinkedList<String>();

当然, 在JEP 286摘要页面上,您可以从Oracle找到以下添加新功能的理由:

“ Java几乎是唯一不包含局部变量类型推断的流行的静态类型语言。 在这一点上,这不再是一个有争议的功能”

这将如何影响您的代码?

Oracle知道社区可能需要一些时间来适应和接受这一新建议。 虽然尚不清楚JEP 286是否以及何时在将来的Java版本中成为现实,但这足以使社区中的一些开发人员大声疾呼。

如果您是这些开发人员之一,那么您将很高兴得知此处理方法仅限于:

  • 带有初始化器的局部变量
  • 增强的for循环中的索引
  • 在传统的for循环中声明的本地人

Oracle 声明它将不适用于:

  • 方法参数
  • 构造函数参数
  • 方法返回类型
  • 领域
  • 捕获形式(或任何其他类型的变量声明)

由于Java承诺支持Java的早期版本,因此我们可以假定它不会破坏向后兼容性。

在家尝试一下

Takipi的我们总是喜欢在新产品上市之前尝试它们,而JEP 286正是这样。 如果您对JEP 286没意见,可以立即自己检查一下。

作为采用OpenJDK计划的一部分,Richard Warburton和Raoul-Gabriel Urma公开发布了具有JEP 286支持的Open JDK的非正式版本 。 这样,您就可以尝试这些新功能,了解JEP 286的全部内容,并在实际操作中体会到它。

想尝试#Java的类型推断吗? @raoulUK和我为JEP 286设置了二进制文件,因此您可以尝试使用https://t.co/0YqnoguqTe

—理查德·沃伯顿(RichardWarburto) 2016年3月13日

最后的想法

这项新提议正在Java社区中引起轰动,引起了很多关注。 您现在可以测试新功能,这将帮助开发人员认识到Java的未来可能掌握的事实。

重要的是要记住,这是一个较早的建议,目前还不清楚Oracle是否会实施它。 因此,我们鼓励您参与将来的调查,并积极参与本JEP和其他将来与Java相关的功能。

翻译自: https://www.javacodegeeks.com/2016/04/java-community-survey-results-74-developers-want-less-verbosity.html

java 开发:md5

java 开发:md5_Java社区调查结果:74%的开发人员希望减少详细程度相关推荐

  1. Java社区调查结果:74%的开发人员希望减少详细程度

    一个新的JDK增强建议(JEP)在Java社区中风起云涌:JEP286.该建议建议在Java的未来版本中引入局部变量类型推断,以简化Java应用程序的编写. 在下面的文章中,我们将解释它的含义以及它将 ...

  2. Java EE 7社区调查结果!

    在JSR 342下可以继续进行Java EE 7的工作.一切进展顺利,Java EE 7现在处于"初稿审查"阶段. 在11月初, Oracle发布了一个有关即将推出的Java EE ...

  3. java与java ee_Java EE 7社区调查结果!

    java与java ee 在JSR 342下可以继续进行Java EE 7的工作.一切都在顺利进行,Java EE 7现在处于早期草稿审查阶段. 在11月初, Oracle发布了一个有关即将推出的Ja ...

  4. (附源码)springboot基于JAVA的社区疫苗接种管理系统的开发毕业设计281442

    Springboot+社区疫苗接种管理系统 摘 要 预防预接种工作实行网络信息化管理,是我国免疫规划工作发展的需要.接种信息实行网络信息化不仅是预防接种工作步入了一个新的台阶,更重要的是解决了多年疫苗 ...

  5. Go、Java、C++,下一代测序工具开发谁更强?

    作者 | Pascal Costanza, Charlotte Herzeel & Wilfried Verachtert 译者 | 弯月,责编 | 夕颜 出品 | CSDN(ID:CSDNn ...

  6. 计算机毕业设计Java宁夏中卫城市风采在线系统开发(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java宁夏中卫城市风采在线系统开发(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java宁夏中卫城市风采在线系统开发(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...

  7. 计算机毕业设计Java高校学生智慧党建系统设计与开发(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java高校学生智慧党建系统设计与开发(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java高校学生智慧党建系统设计与开发(源码+系统+mysql数据库+Lw文档) 本源码技 ...

  8. 安卓app开发工具_四川智慧社区安卓手机app开发多少钱

    四川智慧社区安卓手机app开发多少钱 注册登录应用公园后,有两种APP制作模式: 1.主题模式: 应用公园平台提供了上百个配置好的APP模板,可以直接使用,把图片文字替换就可以直接使用.如下图所示: ...

  9. Java Web 后台中餐饮业报表系统开发实例

    本期葡萄城公开课,我们诚邀石家庄品智技术有限公司,高级软件工程师--刘永政先生,为大家在线分享餐饮业报表系统设计模式,以及在 HTML5 报表浏览器.Java 架构中跨平台使用ActiveReport ...

最新文章

  1. 文件服务器结构,文件服务器结构
  2. [转]NYOJ-511-移动小球
  3. jenkins内存溢出的一些解决过程
  4. 功利性学习:别陷入勤奋陷阱
  5. 联想小新电脑dns服务器未响应,Lenovo Quick Fix 联想智能解决工具
  6. 《Python Cookbook 3rd》笔记(4.2):代理迭代
  7. 下一代SQL 产品发布会,诚邀您的参加!!包含 Azure数据服务、高级分析和SQL Server(其中包括支持Linux的SQL Server vNext)。
  8. 计算机保研和考研复试相同吗,保研与考研有什么区别?
  9. 一个init.php(网站启始)的一般信息
  10. java对象转为map_浅谈对象与Map相互转化
  11. 做一名有幸福感的计算机教师,做一名有幸福感的教师其实很简单
  12. linux 打开8000端口,Linux中如何开启8080端口供外界访问和开启允许对外访问的端口8000...
  13. 条码追溯系统解决外贸企业进销存管理
  14. TeamViewer和向日葵远控软件的个人使用感觉
  15. 鸿蒙系统会碎片化吗,鸿蒙系统讲解决安卓碎片化问题,4G流畅度媲美12G!
  16. qlv转mp4只有声音没有画面了 只要声音 没有视频
  17. 图灵机器人 mysql_如何在微信小程序中制作图灵机器人?
  18. iOS-UIWebview WKWebView 页面缩放
  19. 计算机应用技术课程本科,1101001《计算机应用技术I》课程教学大纲(共本科2009级用).doc...
  20. Google新书:《构建安全可靠的系统》

热门文章

  1. 洛谷P4463:calc(dp、拉格朗日插值)
  2. CF1444C-Team-Building【可撤销并查集】
  3. CF1594F-Ideal Farm【构造】
  4. P7044-[MCOI-03]括号【组合数学】
  5. P4071-[SDOI2016]排列计数【组合计数,错排】
  6. P2468-[SDOI2010]粟粟的书架【主席树,二维前缀和】
  7. ssl提高组周六模拟赛【2018.9.8】
  8. 纪念中学15-5(=10)天感想
  9. 照看小猫(nowcoder 217602)
  10. Java异常面试问题