【51CTO独家特稿】Eclipse宣称Xtend并无意替代Java,而是补Java之短,精简代码,无类型,改进可读和维护。Eclipse Xtend可以编译成可读的Java代码,类似CoffeeScript之与Javascript。
下载地址:http://www.eclipse.org/Xtext/xtend/#download
用Xtend编写Java代码
在Xtend中,可以直接得到Java代码。并且你可以在Eclipse中很直观的看到这些代码,即使你是从Java中进行调用的,你也能看到Xtend代码。
Xtend支持Eclispe工具
Xtend将支持Eclispe上的Java开发工具,另外的功能包括
语法着色
内容辅助
重命名重构
组织进口
快速修复
丰富的悬停
大纲视图
导航
开放式
渐进式编译
括号匹配
标记实例
... ... 和许多
Java类型系统
静态类型是不错的,因为它允许更好的静态分析和基于类型信息的更好的工具。然而,缺点是额外的复杂性(静态)类型系统。
Java类型系统尽管众人皆知,但看起来似乎还不太完美。
Xtend将重用能用到的一切。
- // qualified names
- java.lang.Object
- // primitives
- boolean, int, long, char, ...
- // arrays
- String[]
- // generics
- List<? extends CharSequence>
- java.util.Map<String,String>
不同的类型判断
变量声明
- val names = getTheListOfNames()
- val List<String> names = getTheListOfNames()For-Loops
for循环
- for (name : getTheListOfNames())
- // do something with name
- for (String name : getTheListOfNames())
- // do something with name
返回类型
- def getTheListOfNames() {
- newArrayList("Tomte","Pippi","Carlson")
- }
- def List<String> getTheListOfNames() {
- newArrayList("Tomte","Pippi","Carlson")
- }
Closures
- getTheListOfNames().map( name | "Mr. "+name )
- getTheListOfNames().map( String name | "Mr. "+name )
【编辑推荐】