открытый интерфейс ITMark <E extends Comparable <E>> - PullRequest
2 голосов
/ 22 августа 2011

Теперь я хочу реализовать этот интерфейс с классом. так как мне это сделать?

public class TMark<E> implements ITMark{}

это так, но выкидывать ошибки

Я получаю следующее:

ITMark is a raw type. References to generate type ITMark<E> should be parametrized

Я реализую этот код в Eclipse IDE

Ответы [ 3 ]

0 голосов
/ 22 августа 2011

ITMark является необработанным типом, поскольку у него нет объявленных общих параметров.

Если вы объявили TMark как TMark<E extends Comparable<E>> implements ITMark<E>, он больше не будет необработанным типом, поскольку вы объявили его универсальный параметр.

0 голосов
/ 22 августа 2011

Вы пропустили общий параметр, то есть часть, которая идет в угловых скобках.Вам нужно что-то вроде:

public class TMark <E extends Comparable <E> implements ITMark<E>
{
    ...
}

Для определенного универсального типа вы помещаете подходящий «сопоставимый» тип в угловые скобки, что-то вроде:

public class IntegerTMark extends TMark <Integer>
{
    ...
}

Для хорошего знакомства с генериками, прочитайте учебники по Java, бесплатную главу из Effective Java Джошуа Блоха по http://java.sun.com/docs/books/effective/generics.pdf и множество статей о дженериках по https://www.ibm.com/developerworks/java/.

0 голосов
/ 22 августа 2011

Сделайте это:

public class TMark<SomeComparableClass> implements ITMark<SomeComparableClass> {
    // implement the methods of ITMark for type SomeComparableClass
}

Вы должны указать какой сопоставимый класс, который вы реализуете для этого класса.К вашему сведению, наиболее распространенные типы Java (например, Integer, String, Date и т. Д.) Являются сопоставимыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...