Groovy作为关键字

Groovy作为关键字,groovy,Groovy,以下代码返回一个异常: String x = "12" double y = x 但是,这一条没有: String x = "12" double y = x as double 在我的应用程序中,我有一个字符串x,我想尝试使用'as'关键字自动将它转换为我影响它的变量的类,尽管我事先不知道y的类。如果没有巫术,比如使用作为y.class之类的东西,这是可能的吗 String x = "12" y = x 如果y恰好不是字符串(例如double),上面的代码将返回一个错误,尽管我希望它在失

以下代码返回一个异常:

String x = "12"
double y = x
但是,这一条没有:

String x = "12"
double y = x as double
在我的应用程序中,我有一个字符串x,我想尝试使用'as'关键字自动将它转换为我影响它的变量的类,尽管我事先不知道
y
的类。如果没有巫术,比如使用
作为y.class
之类的东西,这是可能的吗

String x = "12"
y = x

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

您可以在转换之前测试它:

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

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

String x = "12"
double y

y = x.asType(y.class)
使用转换库(如果异常不可转换,它仍可能引发异常)、创建工厂(meh)或捕获异常并处理它?