gpt4 book ai didi

java - Groovy + Java接口(interface)继承问题

转载 作者:行者123 更新时间:2023-12-01 12:48:04 26 4
gpt4 key购买 nike

如果B实现A(Java类),并且ABUtils有一个方法:

public A getBar(String s)
{
return new B(s);
}

以下代码有什么问题:

import A
import B

def foo = ABUtils.getBar("blah");

为什么会产生:

org.codehaus.groovy.runtime.typehandling.GroovyCastException:
Cannot cast object 'blah' with class 'B' to class 'A'

最佳答案

完全没问题。

A.java:

public interface A {}

B.java:

public class B implements A {}

ABUtil.groovy:

class ABUtils {
A getBar() { new B() }
}

new ABUtils().bar.with {
assert it instanceof A
assert it instanceof B
}

编译并运行:

$ javac *.java && groovy AB.groovy 
$

关于java - Groovy + Java接口(interface)继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24492783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com