In Groovy können Sie überraschende Typumwandlungen mit dem as
Operator oder der asType
Methode tun. Beispiele hierfür sindGroovy Typ Umwandlung
Short s = new Integer(6) as Short
List collection = new HashSet().asType(List)
Ich bin überrascht, dass ich von einer Integer zu einem Kurz und von einem Satz zu einer Liste umwandeln kann, weil es keine Beziehung zwischen diesen Typen „a“, obwohl sie einem gemeinsamen tun teilen Vorfahr.
Zum Beispiel der folgende Code entspricht das Integer/Short Beispiel in Bezug auf die Beziehung zwischen den beteiligten Typen in der Umwandlung
class Parent {}
class Child1 extends Parent {}
class Child2 extends Parent {}
def c = new Child1() as Child2
Aber natürlich dieses Beispiel schlägt fehl. Was genau sind die Typumwandlungsregeln hinter dem as
Operator und der asType
Methode?