gpt4 book ai didi

java - 返回接口(interface)集合

转载 作者:行者123 更新时间:2023-11-29 09:42:28 25 4
gpt4 key购买 nike

我创建了如下界面

public interface ISolutionSpace {
public boolean isFeasible();
public boolean isSolution();
public Set<ISolutionSpace> generateChildren();
}

但是,在名为 EightQueenSolutionSpace 的类中执行 ISolutionSpace 时,我将返回一组 EightQueenSolutionSpace 实例,例如以下 stub :

@Override
public Set<ISolutionSpace> generateChildren() {
return new HashSet<EightQueenSolutionSpace>();
}

但是这个 stub 不会编译。我需要做出哪些改变?

编辑:我也尝试过“HashSet”并尝试使用 extends 关键字。但是,由于“ISolutionSpace”是一个接口(interface),而 EightQueenSolutionSpace 是“ISolutionSpace”的一个实现(而非子类),它仍然无法正常工作。

最佳答案

两种可能性:

@Override
public Set<? extends ISolutionSpace> generateChildren() {
return new HashSet<EightQueenSolutionSpace>();
}

或者

@Override
public Set<ISolutionSpace> generateChildren() {
return new HashSet<ISolutionSpace>();
}

并简单地将 EightQueenSolutionSpace 的实例添加到集合中。

关于java - 返回接口(interface)集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4712186/

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