Я пытаюсь создать общий метод для сравнения объектов со многими типами.java вызов общего статического метода
Это мой простой интерфейс
interface comparable<T> {
boolean isBiggerThan(T t1);
}
и это одна реализация для него:
class StringComparable implements comparable<String> {
public StringComparable(String s) {
this.s = s;
}
String s;
@Override
public boolean isBiggerThan(String t1) {
return s.equals(t1);
}
}
это мой класс, который имеет общий метод:
class Utilt {
public static <T extends comparable<T>> int biggerThan(T values[], T t) {
int count = 0;
for (T oneValue : values) {
if (oneValue.isBiggerThan(t)) {
count++;
}
}
return count;
}
}
Я называю этот способ:
public class TestTest {
public static void main(String args[]) {
StringComparable a = new StringComparable("Totti");
StringComparable pi = new StringComparable("Pirlo");
int i = Utilt.biggerThan(new StringComparable[] { a, pi }, a);
}
}
Но я получаю эту ошибку:
The method `biggerThan(T[], T)` in the type `Utilt` is not applicable for the arguments `(StringComparable[], StringComparable)`
см. Это http://stackoverflow.com/questions/17739720/inferred-type-is-not-a-valid-substitute-for-a-comparable-generic-type – Boola