我喜欢Java。 我喜欢用Java编程。 但是在使用Python一段时间后,我希望对其进行一些更改。 它几乎纯粹是语法上的,因此可能有更好的JVM语言,但是我并不真正感兴趣,因为我仍然需要使用普通的Java来工作。 我意识到这些更改将不会实施(尽管我以为我听说其中的一个实际上正在准备将来的版本); 这些只是一些想法。
我不想以开放和免费的Python方式释放Java。 实际上,我经常喜欢Java的限制所带来的挑战。 我主要只是想少打些字。 因此,这是我希望在Java中看到的更改。
摆脱分号
我意识到它们是有目的的,但实际上不是必需的。 实际上,它们实际上使代码更难阅读,因为将多行代码推到同一行几乎总是更难阅读。 从技术上讲,使用分号可以将整个代码文件压缩为一行,以减小文件大小,但是用Java多久完成一次? 可能比我知道的要多,但我不知道它已经完成了。
卸下花括号
这有两个主要原因。 首先,我们可以结束花括号冷战! 其次,我们可以停止在花括号上浪费代码行。
另外,就像我之前说的,我正在尝试减少正在执行的键入次数,这将有所帮助。 最后,通过这样做,花括号可以被打开以用于新用途(稍后将看到)。
操作员超载
当涉及到数学运算时,我并不真正在意运算符的重载。 它们可能很方便,但是方法可以做到这一点。 我最大的担心是比较,尤其是==。 我真的希望Java跟着Python一样,让==是用于相等性检查(您甚至可以通过equals
方法进行操作),并使用“ is”来进行身份检查。 同时,实现Comparable
应该允许您将比较运算符与它们一起使用,而不需要自己转换数字返回值。
如果需要,也可以允许某种方式来重载数学运算符。
元组和/或数据结构
我可以使用其中任何一个,但两者都会更好。 元组作为一次返回多个事物的返回类型特别有用,这有时很方便。 对于简单的数据结构(基本上是C结构)也可以做到这一点,因为它们应该非常轻便。
数据结构的一件大事就是摆脱Java Bean。 如果我们也能够用它们定义不变量,那就更好了。 Java Beans的最大问题在于,我们不必为了传递一些数据而定义一个完整的类。 如果我们无法获得结构,那么至少,我想获得下一个东西。
物产
天哪,我喜欢属性,尤其是在Python中。 允许您使用简单的访问器和变量,就好像它是一个直接变量一样,使代码看起来更漂亮。
默认为
我已经看到一些人谈论“更好的默认设置”的情况,在最典型的情况下,应该省略修饰符关键字(例如public
和private
或static
)。 public
很容易成为类和方法的最常用关键字,那么为什么默认的“ package-private”呢? 我也可以主张将private
设置为字段的默认值,但是我有点认为默认值应该在所有地方都相同,以减少混乱,但是我对此并不固守。
我就变量是否应默认为final争论不休,以帮助推动人们迈向不变性的想法,但我不在乎。
类型对象
这种与智能默认设置有关。 我认为原始函数的自动功能是能够将它们用作对象。 我真的不在乎你怎么做。 最好将其打开以获取真实的原语,以便在需要时进行优化。 这对我来说并不重要。 如果大多数时候它们自然地作为原语传递,那会很酷,但是它们只需调用它们的任何方法就可以自动装箱到对象中。 参数和返回类型应该不在乎传递哪一个。 这也将有助于大大减少Java中内置功能接口的数量,因为大多数实际上是处理基元的重复项。
列表,字典和集合文字
对于那些使用javaScript或Python的人来说,您真的知道我在说什么。 我的意思是,那方便吗? 这与可以使用Streams的构造函数(类似于Java的Generators之类。有点类似)结合在一起,将使集合使用起来相当容易。 字典字面量和集合字面量确实可以很好地使用花括号。
鳍
这是我希望在Java中看到的更改列表。 就像我之前说过的那样,我认为这些事情永远不会发生(尽管我听说它们正在努力处理类型对象),但这实际上只是一个愿望清单。 你们同意我的选择吗?
翻译自: https://www.javacodegeeks.com/2015/01/how-id-like-java-to-be.html