Eclipse Xtend對Java說:我幫你瘦身

第1頁Eclipse Xtend對Java說:我幫你瘦身

  Java程序員在使用Ruby編程時會有一種解放的感覺,一種從Java那繁瑣的語法環境進入一個無拘無束、自由國度的感覺。隨着Clojure和Scala等新語言的出現,這種對比的感覺會越來越強烈。Ruby在很短的時間裏異軍突起,很大的原因在於它的簡潔和自由,比如下面一句代碼:

  File.new("testfile").each {|line| puts line[-1] }

  如果用Java來寫,不知道要寫多少行。Bruce Tate在《七週七種語言》這本書中譴責Java說:“我的手指在流血,因爲我不得不打出這樣多的代碼;我的眼睛在流血,因爲我還要去讀它們。”呵呵,說的很形象。

  其實,Java並不是誠心在爲難程序員,它一直在改進。而Eclipse基金會推出的一種叫做Xtend語言正是爲了要簡化Java的語法,減輕Java程序員的負擔。

Eclipse Xtend對Java說:我幫你瘦身

  又一種新語言?不要擔心。Xtend更像是一種模板語言。它緊密的和Eclipse IDE捆綁在一起,要使用它,你需要安裝Eclipse的Xtend插件,Xtend代碼並不是直接編譯成JVM字節碼的,當你在IDE編輯、保存Xtend代碼時,它會自動的編譯成相對應的Java代碼。

Eclipse Xtend對Java說:我幫你瘦身

  在上圖的右邊窗口裏,你可以檢查生成的Java代碼是不是符合你的預期,並可以通過它調試你的程序。

  那Xtend究竟能幫助Java程序員做什麼呢?面面俱到的介紹一種新語言是一種很複雜的事,我也不想考驗各位的耐心。這裏只舉例說明幾個大家一眼就能看出這種語言存在的價值的例子。

  1.類型推測

  在Java裏很多的表達式中,根據語句的右邊的代碼完全可以推導出左邊的類型,比如下面的Java語句:

  //Java

  List names = getTheListOfNames()

  而在Xtend語言裏,你就不必再聲明左邊的類型,直接寫成:

  val names = getTheListOfNames()

  在for循環裏可以寫成這樣:

  for (name : getTheListOfNames())

  2.對象屬性訪問方式的簡化

  在Java裏,對象屬性的訪問一般都是借用set和get方法實現的,在Xtend裏,你可以直接這樣寫:

  person.name

  而不需要寫成:

  person.getName()

  賦值方法也是:

  person.name = "Foo"

  等同於

  person.setName("Foo")

  還有一個特徵很像Ruby裏的用法,對於一個方法的調用,你可以寫成這樣:

  obj.compute

  而不需要寫成:

  obj.compute()

  3.Switch語句

  這條我不說,估計大家也都會明白。Java裏的switch語句只能接受數字或char類型的判斷參數,而在Xtend裏,沒有這種限制:

  val Shape shape = ...

  switch (shape) {

  Rectangle case shape. width == shape.border="1" Height :

  "Square ("+shape.width+")"

  Rectangle :

  "Rectangle ("+shape.width+" x "+shape.border="1" Height+")"

  Circle :

  "Circle ("+shape.diameter+")"

  default :

  "Don"t know"

  4.模板表達式

  在Xtend裏,定義一個字符串,你可以寫成這樣:

  val msg = "This is some multi line

  text with "double quotes" in it"

  請注意,這個字符串可以是多行的。

  而在使用這個變量時, 你可以寫成:

  def print_line(String msg)"""

  >

  """

  變量直接嵌入文本里!很像PHP或Ruby裏的寫法。

  5.閉包

  我最後介紹的當然也是最強大的一個功能了,閉包。據說Java會在xxxx(xxxx

  val predicate = [ Person person | "Hans" == person.name ]

  persons.filter(predicate)

  這個閉包是用來實現過濾persons集合裏person.name=”Hans”的功能的。怎麼樣,有點函數式編程語言的感覺吧。

  Xtend裏還有很多的語言特徵,這裏就不一一敘述了,有興趣的朋友可以閱讀官方網站提供的HTML在線文檔,或下載PDF版的文檔。

  通過上面的介紹,你的Xtend的感覺如何

 

-------------------------------------------------------------------------------------------------

移動開發者大會:Android開發者將越來越賺錢    海量Android教程、開發資料和源碼

10類最急需IT人才:Java開發者居首                   給將成爲“Android高手”的10個建議 

成爲Java高手的25個學習目標--非常經典            Android 4.1果凍豆新特性詳解 

芯片巨頭海思和展訊:給中國芯片業帶來信心     海量經典Java教程、學習資料和源碼

Java侵權訴訟Google獲勝,Android厚積薄發        面試必備:Android筆試總結 

Android高手必須掌握的28大內容和10個建議     Android平臺研發人才缺口30萬 

Android開發環境安裝和配置步驟詳細圖解         2012國內移動App開發者大調查結果 

Windows 7下搭建android開發環境步驟圖解      Android 4.0的30個突出的新特性 

Android高手要經過的6個階段和6個境界            linux下搭建Android開發環境步驟 

從IT菜鳥變爲“IT骨幹開發者”的11個建議        程序員編程技術迅速提高的終極攻略 

2012世界各國人均GDP排名,中國超泰國           2012年全國各省平均工資排行 

2012年中國大學高校排行榜(580強排名)      中國各省市面積和人口數量排名 

中國百萬開發者大調查:程序員的薪水不錯      Java高手需要越過的10座高山

周立功談嵌入式:我的25年嵌入式生涯            Android和Java語言的異同和關係 

華爲中國區手機銷量達千萬,80%爲智能機        谷歌Android碎片化嚴重

2012年中國各省GDP和人均GDP排名              90後就業“錢景”:IT仍是最佳選擇

2012全球城市競爭力500強,69箇中國城市上榜   不要做浮躁的軟件工程師 

2012年世界500強,79家大陸香港臺灣公司上榜名單  給IT新兵的15個建議 

美國知名科技公司入門級軟件工程師的薪水排名  回顧Java經過的風風雨雨 

71道經典Android面試題和答案--重要知識點都涉及到了 

高校應屆畢業生“IT業”收入最高,Android技術最熱門 

 

 

 

發佈了57 篇原創文章 · 獲贊 11 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章