gpt4 book ai didi

java - 何时使用 extends 或 Implements Comparable (Java) ? + 为什么我无法创建对象

转载 作者:行者123 更新时间:2023-12-02 04:51:15 24 4
gpt4 key购买 nike

我正在学习数据结构,有人要求我编写一个程序,允许商店经理使用 4 个类来操作库存:ListInterface、ExpandableArrayList(实现该接口(interface)的类)、类 item(这是存储的类型)在 Arraylist 中),当然还有一个 Test 类。

某些方法需要使用compareTo。也就是说,是 Comparable ,但我不知道哪个类到底应该是 Comparable ?如果我应该写实现扩展可比较?

这些是我现在拥有的类 header :

public interface ListInterface<T extends Comparable <?super T >> {... }

public class ExpandableArrayList <T extends Comparable <? super T >>
implements ListInterface <T> { ...... }

public class Item<T extends Comparable<T>> {... }

但由于某种原因,我无法在 Test 类中创建对象。当我输入:

ListInterface<Item> inventoryList= new ExpandableArrayList<Item>(); 

我收到以下错误:

Test.java:9: error: type argument Item is not within bounds of type-variable T 
ListInterface<Item> inventoryList= new ExpandableArrayList<Item> () ;
where T is a type-variable:
T extends Comparable<? super T> declared in interface ListInterface


Test.java:9: error: type argument Item is not within bounds of type-variable T
ListInterface<Item> inventoryList= new ExpandableArrayList<Item> () ;
where T is a type-variable:
T extends Comparable<? super T> declared in class ExpandableArrayList

我该如何解决这个问题?究竟应该改变什么? ..

提前非常感谢。

最佳答案

T 这是您的 Item 需要实现 Comparable 的类型。这将允许 ExpandableArrayList 类使用该类提供的比较对 Item 类型的元素运行compareTo 方法。当您从 Comparable 实现compareTo 时,您必须提供一种比较不同 Item 的方法,理想情况下这应该基于 Item 类的属性。

public class Item implements Comparable<Item> {... }

这就是类定义的样子。

您必须为接口(interface)编写实现,为类编写扩展

继承tutorial

接口(interface) tutorial

关于java - 何时使用 extends 或 Implements Comparable (Java) ? + 为什么我无法创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216961/

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