我有一個關於Java泛型類型的問題。具體來說,目前,我有類似這樣的代碼:Java:在子類型中指定泛型類型限制
public interface Foo {
public <T> void bar(T[] list)
}
public class FooImpl implements Foo{
@Override
public <T extends Comparable<? super T>> void bar(T[] list) {
...
}
}
的問題是,編譯器現在抱怨,我還沒有實現我的FooImpl類的吧,方法。
我想要的是對泛型進行一些額外的限制,特別是它們應該具有可比性。但是我不想把這個限制放在我的Foo接口中,因爲所有的實現都不需要這個限制。 這是可能的,我應該怎麼做才能解決它?
非常感謝!
編輯1:修正了錯別字類 - >類和接口 - >接口。但是,返回類型仍然是無效的,而不是T,我認爲這是無關緊要的。我的實際返回類型是一個布爾值。
編輯2:實際的代碼,如要求:
public interface SortedCriteria {
public <E> boolean isSorted(E[] list);
}
public class AscendingCriteria implements SortedCriteria {
@Override
public <E extends Comparable<? super E>> boolean isSorted(E[] list) {
int length = list.length;
for (int i = 1; i < length; i++) {
if (list[i].compareTo(list[i-1]) < 0) return false;
}
return true;
}
}
'如果(名單的instanceof可比)'? – christopher
這可能是一個錯字問題。發佈您的實際代碼。 – chrylis
@Chris現在查看課程...請 – venergiac