A1是的,这是可能的,但需要您输入越来越多的字。
虽然这肯定不是本质上的错误,但它是开发人员抱怨更多的事情之一。他们(有时我自己)觉得 Java太冗长了。
随着硬件变得越来越快,一开始执行计算过于昂贵的新编程语言变得可行,现在它们被越来越多地使用并且非常流行。当开发人员必须再次输入 Java 时,他们会感觉,哦,不:,public static void main
又一次!有点儿。
Java(以及一般的静态类型语言)必须提高执行速度的一件事是在运行之前(即在编译阶段)执行尽可能多的验证
这些新的编程语言(尤其是 Python 和 Ruby)让编程变得很有趣,因为你必须减少输入来达到同样的效果。
Java 对此的反应是让语言变得更大,并将一些这种“语法糖”融入到语言中,这就是原因。
甚至像 C# 这样的编程语言也有这些扩展特性(我想到了属性)来减少开发人员的代码。
最后,我认为这些添加对语言有好处,但必须非常小心地添加它们,以避免破坏兼容性和/或创建一种太大而没有人可以使用的语言。
我认为另一种方法是让方法的名称更具表现力,但这对于 Java 来说非常复杂。也许用一种新的语言:)。
Map put 方法签名可能是这样的:
/**
* Analog to put( Object k, Object v );
*/
public [( Object = k )]=( Object v ) {
}
这允许方法名称为: [(key)]=(value)
并最终省略括号(如在 Ruby 中或最初在 Smalltalk 中),因此该方法将是:
Map map = ....
map.["name"]="Oscar";
因为那是不可能的(因为[]=
不是有效的方法标识符)和写作:
map.put("name","Oscar");
是... mmhh 太冗长了,他们决定添加这个解决方案。
另一个增强功能是数字文字,因此您将能够键入:
int million = 1_000_000;
A2 : 你会得到别的东西。
A3(扩展我对kloffy答案的评论)。
到今天为止,您可以用 Java 编写相同的代码。
授予Stage, Scente, Group, Text, ImageView, Image
现有的 Java 类,您可以键入:
new Stage() {{
title = "Group-Nodes-Transformation";
scene = new Scene() {{
width = 600;
height = 600;
content = new Group() {{
content = new Object[] = {
new Circle() {{
centerX = 300;
centerY = 300;
radius = 250;
fill = Color.WHITE;
stroke = Color.BLACK;
}},
new Text() {{
x = 300;
y = 300;
content = "Mr. Duke";
}},
new ImageView() {{
image = new Image() {{
url = "D:\\TEST\\Documents\\duke.png"
width = 50;
height = 50;
}};
}};
};
}};
}};
}};