我如何想成为Java

我喜欢Java。 我喜欢用Java编程。 但是在使用Python一段时间后,我希望对其进行一些更改。 它几乎纯粹是语法上的,因此可能有更好的JVM语言,但是我并不真正感兴趣,因为我仍然需要使用普通的Java来工作。 我意识到这些更改将不会实施(尽管我以为我听说其中的一个实际上正在准备将来的版本); 这些只是一些想法。

我不想以开放和免费的Python方式释放Java。 实际上,我经常喜欢Java的限制所带来的挑战。 我主要只是想少打些字。 因此,这是我希望在Java中看到的更改。

摆脱分号

我意识到它们是有目的的,但实际上不是必需的。 实际上,它们实际上使代码更难阅读,因为将多行代码推到同一行几乎总是更难阅读。 从技术上讲,使用分号可以将整个代码文件压缩为一行,以减小文件大小,但是用Java多久完成一次? 可能比我知道的要多,但我不知道它已经完成了。

卸下花括号

这有两个主要原因。 首先,我们可以结束花括号冷战! 其次,我们可以停止在花括号上浪费代码行。

另外,就像我之前说的,我正在尝试减少正在执行的键入次数,这将有所帮助。 最后,通过这样做,花括号可以被打开以用于新用途(稍后将看到)。

操作员超载

当涉及到数学运算时,我并不真正在意运算符的重载。 它们可能很方便,但是方法可以做到这一点。 我最大的担心是比较,尤其是==。 我真的希望Java跟着Python一样,让==是用于相等性检查(您甚至可以通过equals方法进行操作),并使用“ is”来进行身份检查。 同时,实现Comparable应该允许您将比较运算符与它们一起使用,而不需要自己转换数字返回值。

如果需要,也可以允许某种方式来重载数学运算符。

元组和/或数据结构

我可以使用其中任何一个,但两者都会更好。 元组作为一次返回多个事物的返回类型特别有用,这有时很方便。 对于简单的数据结构(基本上是C结构)也可以做到这一点,因为它们应该非常轻便。

数据结构的一件大事就是摆脱Java Bean。 如果我们也能够用它们定义不变量,那就更好了。 Java Beans的最大问题在于,我们不必为了传递一些数据而定义一个完整的类。 如果我们无法获得结构,那么至少,我想获得下一个东西。

物产

天哪,我喜欢属性,尤其是在Python中。 允许您使用简单的访问器和变量,就好像它是一个直接变量一样,使代码看起来更漂亮。

默认为

我已经看到一些人谈论“更好的默认设置”的情况,在最典型的情况下,应该省略修饰符关键字(例如publicprivatestatic )。 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9.1定时器 小时分秒

功能:用切换图片0-9效果显示当前系统时间 属性:img的src 1.用到 new Date() getHours(),getMinutes(),getSeconds() getFullyear(),getMouth() 1月数需要加1,getDay()星期为0,1,2,3,4,5&am…

浏览器中的JavaFX

浏览器中的JavaFX屏幕截图 最近,Carl Dea和我启动了一个新项目,将JavaFX 8引入浏览器。 今天,我想介绍我们创建的前两个概念验证,以查看该想法是否完全可行。 对于不耐烦的人,这里是到PoC的链接。 但请注意&#xff0…

如何用代码对repeating section控件新增Item(InfoPath)

在做项目的时候,有一个场景,当用户切换不同选项时(radio button),repeating section会随着切换而变换两种状态1:删除所有item. 2.新增而且只新增一个item. 对于删除比较容易,但对于从没有任何一个item状态下&#xff0…

MDB!= JMS,反之亦然

基本 消息驱动Bean(又称为MDB)只是另一个EJB,如无状态,有状态或单例。 使用MessageDriven批注指定。 MDB用于异步消息处理 它们与无状态EJB 相似 ,因为它们都是由EJB容器池化的 但是,它们与无状态EJB不同…

4.1邮箱的全选,全不选,反选

事件&#xff1a;onclick 属性&#xff1a;checked 对于分清getElementsByTagName(元素名)里的元素名&#xff0c; 可以先提取其外面一层的元素&#xff0c;再在此基础上用getElementsByTagName(元素名) 用到for语句&#xff0c;if语句&#xff0c;length <!DOCTYPE ht…

调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...

刚开始的js 这么写的 function OnTreeNodeChecked() {var ele event.srcElement;if (ele.type checkbox) {var childrenDivID ele.id.replace(CheckBox, Nodes);var div document.getElementById(childrenDivID);if (div ! null) {var checkBoxs div.getElementsByTagName…

1.2鼠标移入移出改变背景色和其他大小样式

功能&#xff1a;鼠标移入div,背景色变为绿色&#xff0c;宽变小&#xff0c;长变大&#xff0c;移出恢复原状 事件&#xff1a;onmouseover,onmouseout 属性&#xff1a; background,width,height <!DOCTYPE html><html><head><meta charset"utf…

JDK 9 –给圣诞老人的信?

众所周知&#xff0c;冬天&#xff08;尤其是圣诞节前的时间&#xff09;是做梦的合适时机&#xff0c;希望有一个梦想似乎可以触摸的时刻。 当孩子们和大人在纸上或在对圣诞老人的虚构或真实信件中写下自己的梦想的那一刻&#xff0c;希望他们的梦想将成为现实。 这很引人注目…

周三的工作 张孝祖

今天的任务是主面板master嘿嘿 上头有几个按钮&#xff0c;登录登出&#xff0c;个人信息&#xff0c;注册注销等&#xff0c;他们是根据用户是否等率决定的 具体代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System…

H5本地存储

在以前&#xff0c;我们想要存储一些数据&#xff0c;并且只是在前端使用&#xff0c;服务端并不会使用&#xff0c;我们只能存在cookie里&#xff0c;但是cookie会跟随请求头在客户端和服务端之间来回传递&#xff0c;而且cookie还有一些缺点&#xff0c;H5提供了webStorage的…

在哪里可以运行EJB?

EJB不仅为Java EE应用服务器而建。 他们还可以执行在的Java EE Web Profile的容器或简单的Java SE环境&#xff08;Java SE的啊- &#xff01;E&#xff01;ASY 的J ava 乙是指合同&#xff09;。 EJB Lite 仅支持完整的EJB规范提供的功能的子集所必需的-相同功能的轻量级版本…

sql查询结果字段名与字段值倒过来了

数据库为sybase, sql如下&#xff1a; 1 select substring(LRRJG,1,7) as SSQJ, 2 sum(case when RWDL_BH 01 then 1 else 0 end) AS A, 3 sum(case when RWDL_BH 01 and XBHSJG ! null then 1 else 0 end) AS B 4 from ZYH_DBRW_LRNSRRW 5 where LR_DBRW_ID ! null and DR …

Promise实战AJAX封装

一、利用Promise的知识&#xff0c;对最开始的ajax的例子进行一个简单的封装&#xff1a; var url xxx; // 封装一个get请求的方法 function request(url){return new Promise(function(resolve,reject){var XHR new XMLHttpRequest();XHR.open(GET,url,true);XHR.send();XHR…

重新设计Hamcrest

我在Hamcrest库上做了几篇文章 &#xff0c;我确实很喜欢使用它&#xff0c;但是我希望对其进行一些更改。 我了解他们做出的大多数设计决策&#xff0c;但我认为其中一些确实不值得。 介绍Litecrest 我对库所做的大多数更改都有助于减轻Hamcrest的负担&#xff0c;因为我觉得…

CSS 垂直居中

1、使用绝对定位垂直居中 绝对对位原理&#xff1a;元素在过度受限情况下&#xff0c;将margin设置为auto&#xff0c;浏览器会重算margin的值&#xff0c;过度受限指的是同时设置top/bottom与height或者left/right与width。 .absolute_center{/*display:none;*/position:absol…

Java EE拦截器

历史 我认为重要的是要看一下Java EE中的Interceptor的发展&#xff0c;因为它是从EJB特定的项目开始的&#xff0c;后来又演变成一个单独的规范&#xff0c;现在可供其他Java EE规范扩展&#xff0c;这一事实很简单。 版本1.0 拦截器最初是在EJB 3.0 &#xff08; Java EE 5的…

New Begin

已经研究生三年级了&#xff0c; 最近也找好了工作&#xff0c;应该要开始自己的程序人生了。 虽然说写程序也写了很一段时间了&#xff0c; 决定现在开始在cnblogs这个&#xff0c;记录下自己的学习轨迹。开始维护自己的blogs。转载于:https://www.cnblogs.com/binzeehale/ar…

[ExtJs6] 环境搭建及创建项目

1. 环境搭建 sencha cmd 和 extjs6 sdk.sencha cmd: https://www.sencha.com/products/extjs/cmd-download/extjs6: https://www.sencha.com/sencha cmd 安装过程将其加入系统的环境变量path中。export PATH${PATH}:/Users/shuanggai/bin/Sencha/Cmd/6.2.2.36把改语句添加到 ~/…

通过Spring Integration和RabbitMQ获得高可用性的AMQP支持的消息通道

Spring Integration消息通道默认情况下将消息存储在内存中。 这是因为内存速度快&#xff0c;易于实现&#xff0c;并且不会增加网络成本。 但是&#xff0c;在某些情况下&#xff0c;这可能会引起问题&#xff0c;因为如果应用程序崩溃或服务器意外关闭&#xff0c;所有消息都…

有机会多熟悉下开源框架

Struts2&#xff0c;Spring&#xff0c;Hibernate等开源框架的使用转载于:https://www.cnblogs.com/yqskj/archive/2012/11/05/2756085.html