【发布时间】:2010-11-19 12:39:41
【问题描述】:
在 Groovy 中,您可以使用 as 运算符或 asType 方法进行令人惊讶的类型转换。例子包括
Short s = new Integer(6) as Short
List collection = new HashSet().asType(List)
我很惊讶我可以从 Integer 转换为 Short 并从 Set 转换为 List,因为这些类型之间没有“是”关系,尽管它们确实共享一个共同的祖先。
例如,以下代码在以下方面等效于 Integer/Short 示例 转换中涉及的类型之间的关系
class Parent {}
class Child1 extends Parent {}
class Child2 extends Parent {}
def c = new Child1() as Child2
但是这个例子当然失败了。 as运算符和asType方法背后的类型转换规则究竟是什么?
【问题讨论】:
标签: groovy type-conversion casting