gpt4 book ai didi

java - 接口(interface)和实现签名不匹配

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:17 25 4
gpt4 key购买 nike

如果一个 jar 具有一个接口(interface),该接口(interface)包含由另一个 jar 中的类实现的方法,并且该接口(interface)添加了抛出已检查异常并在不重新编译实现类的情况下进行部署,会发生什么情况?

最佳答案

我理解,人们可能会认为类加载器不捕获 header 中的异常并让您声明将其抛出到实现中是符合最佳利益的。

但是,这是有效的 Java

public interface GetFive {

int getFive() throws Exception;

}

public class GetFiveImpl implements GetFive {

int getFive() {
return 5;
}
}

它是有效的,因为您不需要抛出异常,即使您的界面表明您可以。

无效的是在未捕获异常的 block 中使用 GetFive.getFive()。 block 剧院中的 GetFiveImpl.getFive() 没有捕获异常就可以了。

即使您有一个在接口(interface)上工作的 block ,该 block 也是在永远不会引发异常的环境中编译的;所以,它会工作得很好。不过,我不会将此作为一种常见做法。

我对此进行了测试,结果证实了我的怀疑。这并不意味着这样做是个好主意。然而,思考了一段时间后,依赖的jar不可能在不重新编译的情况下抛出异常,这将重新检查接口(interface)。

关于java - 接口(interface)和实现签名不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29292112/

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