在单个 class 中实现 Iterator 和 ResultSet 接口 - 冲突

Implement both Iterator and ResultSet interface in a single class - Conflict

我有一个场景,其中单个 class 需要同时实现 Iterator 和 ResultSet 接口。

代码如下所示

错误也如上所示。

你能否建议是否有任何替代方案可以解决此问题?

您收到该错误是因为 Resultset 和 Iterable 中都有方法 next(),但具有不同的 returns 值

下一个结果集有布尔值作为 return 值 迭代器 next 有 E 作为 return value

但是调用签名是一样的。在 java 中,仅更改 return 值不会获得多态性;这导致了编译器错误。

您可以代替继承,将结果集包含在 class 中作为实例变量。

public class MyClass<E> implements Iterator<E>, Iterable<E>{
    private ResultSet resultset;
}