У меня здесь странная ситуация, а именно затмение говорит мне, что Long является «недействительным заменой ограниченного параметра <T extends Comparable<? super T>>
». Какие-либо предложения о том, что может быть причиной? Я вставив соответствующий код ниже
Eclipse говорит мне, что Long не сопоставим
абстрактного Pair:
public abstract class Pair<T extends Comparable<? super T>, R> implements Comparable<Pair<T, R>>{
private T tt;
private R rr;
public Pair(T t, R r){
tt = t;
rr = r;
}
@Override
public String toString(){
return tt+ ": " +rr.toString();
}
}
бетона Пара:
import utilities.Pair;
public class LogBookRecord<Long, String> extends Pair<Long, String>{
LogBookRecord(Comparable t, Object r) {
super(t, r);
// TODO Auto-generated constructor stub
}
}
Я попытался изменить абстрактными Заголовок класс:
public abstract class Pair<T extends Comparable<T>, R> implements Comparable<Pair<T, R>>
, которые не помогли, а также:
public abstract class Pair<T, R> implements Comparable<Pair<T, R>>
, но затем, в конкретном классе я получаю уведомление, которое предполагает, что я должен изменить параметры типа для <Comparable, Object>
.
Как вы думаете, 'класс LogBookRecord' делает (имена между '' <...>)? Почему ты так думаешь? –
Он присваивает типы общим параметрам в абстрактном классе? – Suspended
Вы объявили свои собственные общие типы с именем 'Long' и' String'. – GriffeyDog