Изучавам структури от данни и ме помолиха да напиша програма, която позволява на мениджър на магазин да манипулира инвентар, използвайки 4 класа: ListInterface, ExpandableArrayList (клас, който имплементира интерфейса), class item (който е типът, съхранен в Arraylist ) , и разбира се, тестов клас.
някои методи изискват използването на compareTo. тоест да бъде Сравним, но не знам кой точно клас трябва да бъде Сравним? и ако трябва да напиша Прилага или разширява Сравнимо?
това са заглавките на класа, които имам в момента:
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>> {... }
но по някаква причина не мога да създам обект в тестовия клас. когато пиша:
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
Как мога да разреша това? какво точно трябва да се промени? ..
благодаря много предварително.
Comparable
. Ако го направите, тогава нещото, което сравнявате/сортирате, трябва да бъдеComparable
. - person RealSkeptic   schedule 23.03.2015