[英]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.