gpt4 book ai didi

java - 参数多态性的斗争

转载 作者:行者123 更新时间:2023-12-02 08:05:58 25 4
gpt4 key购买 nike

除了为作业实现 Bag & List 之外,下一步是创建有序版本。要求是使用正确的类型参数和约束来指定参数化接口(interface) OrderedCollection。我的问题是如何实现它。

接口(interface) Collection <E>存在并定义为

public interface Collection<E> extends Iterable<E>{
public void add(E e);
public void remove(E e);
public boolean contains(Object e);
public void clear();
public int size();
public boolean isEmpty();
public Object[] toArray();
}

它是由类实现

public class UnorderedList<E> implements Collection<E>
public class UnorderedBag<E> extends UnorderedList<E> implements Collection<E>

我的结构正在运行,现在正在尝试实现排序版本。为了做到这一点并满足部分要求,我创建了 OrderedCollection作为

public interface OrderedCollection <E extends Comparable<E>> {
public int compareTo(E e);
}

因为它扩展了 Collection 中已定义的方法,唯一需要的新功能是 compareTo()方法。

但是,当我尝试实现 OrderedList 时通过声明

public class OrderedList<E> extends UnorderedList<E> implements OrderedCollection<E>

我收到一条错误消息

Bound mismatch: The type E is not a valid substitute for the bounded parameter <E
extends Comparable<E>> of the type OrderedCollection<E>

根据我对错误消息的理解,我需要指定一种参数类型,该参数类型是接口(interface)声明中给出的参数类型的有效替代。不过,我已经尝试过了

OrderedCollection<E extends Comparable<E>>

作为实现声明者,但随后我收到一条警告,指出扩展上存在语法错误。

我如何满足这里的要求?

最佳答案

OrderedList 类的声明中,OrderedList 的泛型类型需要与 OrderedCollection 期望的限制相匹配。

public class OrderedList<E extends Comparable<E>> 
extends UnorderedList<E>
implements OrderedCollection<E>

关于java - 参数多态性的斗争,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8160216/

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