我创建了以下界面

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


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

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


但是,此存根不会编译。我需要进行哪些更改?

编辑:我也尝试了'HashSet',并尝试使用extend关键字。但是,由于“ ISolutionSpace”是接口,而EightQueenSolutionSpace是“ ISolutionSpace”的实现(而不是子类),因此它仍然无法正常工作。

最佳答案

return new HashSet<ISolutionSpace>();


HashSet中的所有引用都可以指向AugustQueenSolutionSpace实例,但通用类型应为ISolutionSpace。

10-06 05:09