Groovy作为关键字

时间:2015-10-09 16:09:57

标签: groovy

以下代码返回异常:

String x = "12"
double y = x

然而,这不是:

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

在我的应用程序中,我有一个字符串x,我想自动尝试使用'as'关键字将它转换为我影响它的变量的类,尽管我不知道类的提前y。如果没有一些巫术,例如使用as y.class或其他东西吗?

String x = "12"
y = x

如果y恰好不是字符串(例如double),上面的代码会返回错误,尽管我希望它在失败之前尝试将x转换为y的类型。

2 个答案:

答案 0 :(得分:2)

表达式x as double与方法调用x.asType(Double)相同。所以你可以使用这个简单的异教徒法术:

String x = "12"
double y

y = x.asType(y.class)

答案 1 :(得分: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