以下代码返回异常:
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的类型。
答案 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