簡體   English   中英

Groovy def和Java對象之間的區別?

[英]Difference between Groovy def and Java Object?

我想弄清楚它們之間的區別

Groovy的:

def name = "stephanie"

Java的:

Object name = "stephanie"

因為兩者似乎都充當了與它們交互的對象,所以我必須將它們轉換為原始的預期類型。

我最初是在尋找一個相當於C#動態類的Java相當於C#動態類類型的Java? ),並建議查看Groovy的def

例如,我對groovy def的印象是我可以做以下事情:

def DOB = new Date(1998,5,23);
int x = DOB.getYear();

然而,這不會建立

謝謝,斯蒂芬

解決方案編輯:弄清楚錯誤,因為我有一個groovy類與公共屬性(在我的DOB上面的例子)用def定義,但后來正試圖從.java類訪問它們(在我上面的例子中調用.getYear( ) 在上面)。 它是一個菜鳥錯誤,但問題是一旦對象離開Groovy文件,它就被視為一個Object。 感謝你的幫助!

本身,這兩個陳述之間沒有太大區別; 但由於Groovy是一種動態語言,你可以寫

def name = "Stephanie"
println name.toUpperCase() // no cast required

而你需要在Java版本中進行顯式轉換

Object name = "Stephanie";
System.out.println(((String) name).toUpperCase());

出於這個原因, def在Groovy中比在Java中毫無根據地使用Object更有意義。

您可以在groovy Web控制台中試驗groovy http://groovyconsole.appspot.com/

您的初始groovy日期示例有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM