A1 是的,这是可能的,但需要您不断地输入更多内容。
虽然这并不是什么本质上错误的事情,但它是开发人员抱怨最多的事情之一。他们(有时候包括我自己)感觉 Java 太啰嗦了。
随着硬件的加速,新的编程语言开始变得可行,尽管最初执行计算的成本较高,但现在它们正在被越来越广泛地使用并变得非常流行。当开发人员再次开始输入 Java 代码时,他们会感到有点像“哦,不!”,“public static void main”又要输入了!
Java(以及静态类型语言)为提高执行速度所做的一项工作是在运行之前(即在编译阶段)尽可能多地进行验证。
这些新的编程语言(特别是 Python 和 Ruby)使编程成为一种乐趣,因为您只需输入较少的内容即可实现相同的功能。
Java 正在采取的反应是让语言变得更大,并将其中一些“语法糖”纳入到语言中。
即使像C#这样的编程语言也有这些扩展功能(例如属性),以使开发人员编写的代码更少。
最后,我认为这些添加对语言有益,但必须非常小心地添加,以避免破坏兼容性和/或创建一个太大的语言,没有人可以使用它。
我认为另一种选择是允许方法在名称上更具表现力,但对于Java来说这很复杂。也许在一种新语言中 :).
Map put方法签名可以是这样的:
public [( Object = k )]=( Object v ) {
}
这允许方法名称为:[(key)]=(value)
,最终可以省略括号(如Ruby或原始的Smalltalk),因此该方法将是:
Map map = ....
map.["name"]="Oscar";
由于[] =
不是有效的方法标识符,所以这是不可能的。修改为:
map.put("name","Oscar");
他们认为...太啰嗦了,因此决定添加这个解决方案。
另一个改进是数字字面量,因此您将能够输入:
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;
}};
}};
};
}};
}};
}};
Map
:Map<String, String> capitals = HashMap.of(["India", "Delhi"], ["USA", "Washington DC"]);
- Green HyenaArrayList.of<Object>("Apple", "Mango", "Guava");
。否则,类型注释就不是必要的。 - Green Hyena