我已经成为Java开发人员已有好几年了.最近,Groovy引起了轰动.我检查了它,它看起来很有趣,但我没有看到任何固有的"令人惊叹的因素"; 意思是,我没有看到任何内在价值开始在其中发展.
现在,我很肯定我只是没有看到森林穿过树林.所以,我问整个SO社区:如何以任何Java开发人员的方式学习Groovy?什么功能/功能/等.它比普通的'Java'做(或做得更好)?
软件世界中的事情没有理由就像野火一样起飞.我确信Groovy有各种漂亮的小(和大)功能,这使它成为必须知道的; 我只是没有"得到"它.提前致谢.
在我看来,Groovy对Java的一些最大的冒险是:
由于重载的运算符和简化的属性访问,terser代码.而不是写作
if (obj1.getBar().equals(obj2.getBaz())) {
obj3.setFoo("equal");
}
Run Code Online (Sandbox Code Playgroud)
你可以写
if (obj1.bar == obj2.baz) {
obj3.foo = "equal"
}
Run Code Online (Sandbox Code Playgroud)我觉得它更具可读性.
地图和列表的内联表示法.代替
Map attributes = new HashMap();
attributes.put("color", "red");
attributes.put("width", 1);
Run Code Online (Sandbox Code Playgroud)你可以写
def attributes = [color: "red", width: 1]
Run Code Online (Sandbox Code Playgroud)
标准库的有用扩展.例如,您可以像这样读取文件和网页:
def fileContents = new File('readme.txt').text
def pageContents = new URL('readme.txt').text
Run Code Online (Sandbox Code Playgroud)用于初始化属性的语法糖 - 例如,
MyClass myObject = new MyClass();
myObject.setFoo("bar");
myObject.setBaz(23);
Run Code Online (Sandbox Code Playgroud)可以替换为
def myObject = new MyClass(foo: "bar", baz: 23)
Run Code Online (Sandbox Code Playgroud)
'安全'解除引用 - if (str != null) {return str.toUppercase();} else {return null;}成为return str?.toUppercase()
正则表达式看起来更好
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |