Interface Comparable<T>

4 views
Skip to first unread message

Синельников Евгений

unread,
Nov 4, 2009, 6:48:30 AM11/4/09
to Saratov OSUM Portal
Здравствуйте,

хочу напомнить об одной как бы ошибке, связанной с интерфейсом
Comparable
http://www.j2ee.me/javase/6/docs/api/java/lang/Comparable.html

Этот интерфейс шаблонный. Заявленная ошибка была в том, что там должен
быть задан параметром object. Прошу тех, кто на это указывал
прокомментировать...

Далее привожу вопрос и ответ:

Section 6: 6: Collections / Generics - Objective 6.1
Test Question 45

Given:
2. import java.util.*;
3. class MyInfo implements Comparable {
4. MyInfo(String s) { desc = s; }
5. String desc;
6. // insert code here
7. public String toString() { return desc; }
8. }

Which method, inserted at line 6, correctly implements
java.util.Comparable?

A.
int compare(MyInfo m) {
return desc.compareTo(m.desc); }

B.
int compareTo(MyInfo m) {
return desc.compareTo(m.desc); }

C.

int compareable(MyInfo m) {
return desc.compareTo(m.desc); }

D.
int compare(Object o) {
return desc.compareTo(o.toString()); }

E.
int compareTo(Object o) {
return desc.compareTo(o.toString()); }

F.
int compareable(Object o) {
return desc.compareTo(o.toString()); }

____________
Reference API,
Option B correctly implements the compareTo() method necessary to
implement the java.util.Comparable interface.

Frostman

unread,
Nov 4, 2009, 8:12:05 AM11/4/09
to Saratov OSUM Portal
интерфейс шаблонный, но тип не указан, поэтому он по-умолчанию Object

class MyInfo implements Comparable {


MyInfo(String s) {
desc = s;
}

String desc;
public int compareTo(Object o) {
return 0;


}
public String toString() {
return desc;
}
}

нормально компилируется, если же написать MyInfo вместо Object, то
ошибка...

а вот если бы тип был указан, то правильно было бы написать так:

class MyClass implements Comparable <T> {
public int compareTo(T t) {
// compare
return 0;
}
}

Reply all
Reply to author
Forward
0 new messages