多くの種類のオブジェクトを比較する汎用メソッドを作成しようとしています。java汎用の静的メソッドを呼び出す
これは私のシンプルなインタフェース
interface comparable<T> {
boolean isBiggerThan(T t1);
}
であり、これはそれのための1つの実装である:私は呼ん
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;
}
}
:これは一般的な方法を持っている私のクラスは
class StringComparable implements comparable<String> {
public StringComparable(String s) {
this.s = s;
}
String s;
@Override
public boolean isBiggerThan(String t1) {
return s.equals(t1);
}
}
ですそのような方法:
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