集合继承java与groovy

集合继承java与groovy,java,inheritance,groovy,collections,Java,Inheritance,Groovy,Collections,假设此类层次结构: class A {} class B extends class A {} 以下代码在Java中无效: List<A> list = new ArrayList<B>(); List List=new ArrayList(); 因为ArrayList不是List的子类型 然而,在groovy中,上面的代码似乎没有引起错误。为什么会这样?除非您使用@CompileStatic

假设此类层次结构:

class A {}
class B extends class A {}
以下代码在Java中无效:

List<A> list = new ArrayList<B>();
List List=new ArrayList();
因为
ArrayList
不是
List
的子类型


然而,在groovy中,上面的代码似乎没有引起错误。为什么会这样?

除非您使用
@CompileStatic