Eclipse推JVM语言Xtend 继续拥抱Java

【独家特稿】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将重用能用到的一切。

 
 
 
 
  1. // qualified names  
  2. java.lang.Object  
  3. // primitives  
  4. booleanintlongchar, ...  
  5. // arrays  
  6. String[]  
  7. // generics  
  8. List<? extends CharSequence>  
  9. java.util.Map<String,String> 

不同的类型判断

变量声明

 
 
 
 
  1. val names = getTheListOfNames()  
  2. val List<String> names = getTheListOfNames()For-Loops   

 

for循环

 
 
 
 
  1. for (name : getTheListOfNames())      
  2. // do something with name    
  3. for (String name : getTheListOfNames())      
  4. // do something with name  

返回类型

 
 
 
 
  1. def getTheListOfNames() {  
  2.   newArrayList("Tomte","Pippi","Carlson")  
  3. }  
  4. def List<String> getTheListOfNames() {  
  5.   newArrayList("Tomte","Pippi","Carlson")  

Closures

 
 
 
 
  1. getTheListOfNames().map( name | "Mr. "+name )  
  2. getTheListOfNames().map( String name | "Mr. "+name ) 

 

 

【编辑推荐】

  1. 深入Java虚拟机JVM类加载初始化学习笔记
  2. 深入Java核心:JVM中的栈和局部变量
  3. 你不知道的5个JVM命令行标志
THE END