javaコンパイラが「変換」メソッドで「型パラメータTが型Tを隠している」と表示するのはなぜですか?
public static interface Translator<T, E> {
E call(T t);
}
public static <T, E> List<E> translate(List<T> l, Translator<T, E> t) {
..
}
型パラメータ T を削除すると
public static <E> List<E> translate(List<T> l, Translator<T, E> t)
警告は消えましたが、今はできません
List<Long> l = new ArrayList<>();
List<String> r = translate(l, new Translator<Long, String>() { .. })
このエラーが発生する原因
The method translate(List<T>, GFn.Translator<T,E>)
in the type GList is not applicable for the arguments
(List<Long>, new GFn.Translator<Long,String>(){})