登录 / 注册
IT168技术开发频道
IT168首页 > 技术开发 > 技术开发资讯 > 正文

也许有了这5个特性, Java能重归巅峰?

2017-11-09 14:58    it168网站原创  作者: 编译|三文鱼 编辑: 单文彦

  【IT168 资讯】Yegor Bugayenko称,他偶然受到了Brian Goetz关于Java中数据类提议的启发,立即意识到自己也有一些关于如何使Java成为更好语言的想法。其中,以下这五个最重要的。

  全局变量

  Java中有单例,这大家都知道。如果能在Java中启用全局变量并摆脱单例对象,这不是很好么。PHP,JavaScript,Ruby和许多其他语言都有,为什么Java没有?看看这个代码: 也许有了这5个特性, Java能重归巅峰?

  然后,要访问它,必须使用:  也许有了这5个特性, Java能重归巅峰?

  这是一个单例,但是它很冗长。可以简单地用一个全局变量替换它:也许有了这5个特性, Java能重归巅峰?

  然后 也许有了这5个特性, Java能重归巅峰?

  编写更少的代码,阅读起来更容易!

  全局函数和命名空间

  为了将静态方法组在一起,我们创建了工具类,必须定义私有构造函数来防止它们实例化。另外,还必须记住静态方法所在的特定工具类中,这样的方法一点都不高效。Yegor Bugayenko建议我们将全局函数添加到Java和可选的“名称空间”来对它们进行分组。 看看这个工具类:也许有了这5个特性, Java能重归巅峰?

  来看这个带命名空间的全局函数:  也许有了这5个特性, Java能重归巅峰?

  Yegor Bugayenko的观点是,既然已经在使用类作为函数的集合了,那么就让它更方便一些。在一些应用程序中,我们甚至不需要命名空间,只需要全局函数,例如C或者C ++。

  完全访问私有属性和方法

  为了从外部访问私有属性或对象的方法,我们必须使用Reflection API。这并不是特别困难,但它需要的这些代码却不容易阅读和理解:也许有了这5个特性, Java能重归巅峰?

  Yegor Bugayenko建议,允许任何对象访问另一个对象的任何属性和方法:也许有了这5个特性, Java能重归巅峰?

  当然,如果它们是私有的,编译器会发出警告。在编译时,您只需忽略警告并继续工作。

  默认为NULL

  可以用不完整的参数来调用构造函数和方法。默认情况下,我们不提供的参数将默认被设置为null。另外,当一个方法必须有返回值时,但是没有返回语句时,Java应该返回null。这几乎就是它在PHP,Ruby和许多其他语言中的工作原理。

  当一些参数是可选的时,我们不需要定义这么多的方法。方法重载非常冗长,而且难以理解。相反,应该有一个具有参数列表的方法。其中一些将由调用者提供,另一些将被设置为空。该方法将决定要做什么,例如:也许有了这5个特性, Java能重归巅峰?

  然后调用save(f)或save(f,“UTF-16”)。 该方法将更方便,就像在Ruby中一样,通过名称提供方法参数:也许有了这5个特性, Java能重归巅峰?

  另外,当没有返回值时,该方法必须默认返回null。写入返回null是浪费时间的,这并不能真正提高可读性:也许有了这5个特性, Java能重归巅峰?

  从这段代码中可以明显看出,如果文件存在,该方法将加载并返回其内容。如果不是,则返回null,这对于调用者来说是一个很好的指示器。

  getter和setter

  显而易见,我们需要这个特性:每个私有属性都必须自动拥有setter和getter。不需要去创建,就像Kotlin和Ruby一样,Java应该提供。如果没有getter和setter来读取并修改,那么又有什么意义呢?

  有了这个新功能,就不再需要Lombok或IntelliJ IDEA的辅助。

  • IT168企业级IT168企业级
  • IT168文库IT168文库

扫码送文库金币

编辑推荐
系统架构师大会
系统架构师大会
点击或扫描关注
IT168企业级微信关注送礼
IT168企业级微信关注送礼
扫描关注
首页 评论 返回顶部