Eclipse推JVM語(yǔ)言Xtend 繼續(xù)擁抱Java
原創(chuàng)【51CTO獨(dú)家特稿】Eclipse宣稱Xtend并無(wú)意替代Java,而是補(bǔ)Java之短,精簡(jiǎn)代碼,無(wú)類型,改進(jìn)可讀和維護(hù)。Eclipse Xtend可以編譯成可讀的Java代碼,類似CoffeeScript之與Javascript。
下載地址:http://www.eclipse.org/Xtext/xtend/#download
用Xtend編寫Java代碼
在Xtend中,可以直接得到Java代碼。并且你可以在Eclipse中很直觀的看到這些代碼,即使你是從Java中進(jìn)行調(diào)用的,你也能看到Xtend代碼。
Xtend支持Eclispe工具
Xtend將支持Eclispe上的Java開發(fā)工具,另外的功能包括
語(yǔ)法著色
內(nèi)容輔助
重命名重構(gòu)
組織進(jìn)口
快速修復(fù)
豐富的懸停
大綱視圖
導(dǎo)航
開放式
漸進(jìn)式編譯
括號(hào)匹配
標(biāo)記實(shí)例
... ... 和許多
Java類型系統(tǒng)
靜態(tài)類型是不錯(cuò)的,因?yàn)樗试S更好的靜態(tài)分析和基于類型信息的更好的工具。然而,缺點(diǎn)是額外的復(fù)雜性(靜態(tài))類型系統(tǒng)。
Java類型系統(tǒng)盡管眾人皆知,但看起來(lái)似乎還不太完美。
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循環(huán)
- 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 )
【編輯推薦】