为什么会出现以下
class Test {
@Test
void go() {
def foo1 = new MockFoo1() as Foo
def foo2 = new MockFoo2() as Foo
}
interface Foo {}
class MockFoo1 {}
class MockFoo2 {}
}
导致java.lang.IllegalArgumentException: argument type mismatch
对 foo2 的强制?
仅当我在单个执行路径期间将 2 个不同类型的 2 个对象强制到同一接口时,才会发生这种情况。使用闭包或映射来实现这种鸭子类型的常规认可方式效果很好。
任何光线都表示赞赏。