在Groovy中,您可以使用as
運算符或asType
方法進行令人驚訝的類型轉換。例子包括Groovy類型轉換
Short s = new Integer(6) as Short
List collection = new HashSet().asType(List)
我很驚訝,我可以從一個Integer到短而從一組到列表轉換,因爲沒有「是」,這些類型之間的關係,雖然他們有一個共同祖先。
例如,下面的代碼等同於整數/短示例中所涉及的轉化
class Parent {}
class Child1 extends Parent {}
class Child2 extends Parent {}
def c = new Child1() as Child2
當然,這個例子失敗的,但各類型之間的關係 方面。 as
運營商和asType
方法背後的類型轉換規則究竟是什麼?