2015-10-09 44 views
0

下面的代碼返回一個例外:的Groovy作爲關鍵字

String x = "12" 
double y = x 

然而,這一個不:

String x = "12" 
double y = x as double 

在我的申請,我有一個串x,我想試試自動將它與'as'關鍵字一起強制轉換爲我正在影響它的變量的類,儘管我不提前知道y的類。這可能沒有一些巫術,如使用as y.class什麼的?如果y碰巧不是一個字符串(如雙)

String x = "12" 
y = x 

上面的代碼返回一個錯誤,但我想它嘗試失敗之前投X到Y的類型。

+0

使用轉換庫(可能仍然拋出一個異常,如果它是不可兌換),創建一個工廠(MEH),或只捕獲異常並處理呢? –

回答

0

可以鑄造之前對其進行測試:

groovy:000> s="x12" 
===> x12 
groovy:000> s.isNumber() ? s.toDouble() : null 
===> null 
groovy:000> s = "12" 
===> 12 
groovy:000> s.isNumber() ? s.toDouble() : null 
===> 12.0 
2

表達x as double相同的方法調用x.asType(Double)。所以,你可以使用這個簡單的異教咒語:

String x = "12" 
double y 

y = x.asType(y.class)