在单个类中实现Iterator和ResultSet接口 - Conflict

时间:2018-03-12 03:46:42

标签: java multiple-inheritance

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

代码看起来像这样

enter image description here

错误也如上所示。

您能否建议是否有此问题的替代方案?

1 个答案:

答案 0 :(得分:2)

您收到该错误,因为Resultset和Iterable都有next()方法,但返回值不同

resultset next有boolean作为返回值 Iterator接下来将E作为返回值

但是主叫签名是一样的。在java中,通过仅更改返回值不会获得多态性;这导致编译器错误。

而不是继承,你可以将组合包括在类中的Resultset作为实例变量。

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