Eclipse推JVM語言Xtend 繼續擁抱Java
原創【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 )
【編輯推薦】