gpt4 book ai didi

Java 接口(interface)及其在集合中的使用

转载 作者:行者123 更新时间:2023-12-01 09:09:56 25 4
gpt4 key购买 nike

我正在开发一个 Java 库,我需要创建一个返回 Set<A> 的方法。 ,其中A是一个接口(interface)并且 B implements A 。所以我尝试实例化该集合,如下所示:

Set<A> setOfA = new HashSet<B>();

出现以下错误:

Type mismatch: cannot convert from HashSet<B> to Set<A>

但是,当不使用集合并返回 B 时在一个期望 A 的函数中作为返回类型,一切都正常,因此接口(interface)与其具体类之间的关系也正常,问题出在集合(本例中为 HashSet)。我怎样才能避免这种情况?提前致谢。

最佳答案

你只能这样做:

Set<A> setOfA = new HashSet<>();

这是一个简短的方法:

Set<A> setOfA = new HashSet<A>();

因此,当您需要使用 B 中的特殊方法时,只需像这样进行强制转换(如果您确定该对象确实是 B 的实例)

B b = (B) setofA.get(....);

你可以阅读非常好的教程here 。祝你好运

关于Java 接口(interface)及其在集合中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40982764/

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