2
public class A {
public interface I<T> {
public Integer toInt(T x);
}
public static int t(String s, I<String> i) {
// System.out.println(i instanceof I<Integer>);
return i.toInt(s);
}
public static <S> int g(S s, I<T> i){
return i.toInt(s);
}
public static void main (String[] args) {
System.out.println(t("dcba", s->(int)(s.charAt(0)+'a')));
}
}
なぜg
のコンパイルに失敗しますか? t
メソッドのSystem.out.println(i instanceof I<Integer>)
行がコンパイルに失敗したのはなぜですか?instanceofとgenericsのコンパイルエラー
"gはそのシグネチャにジェネリック型のパラメータTを使用できません"ので、パラメータ "K"にすることはできますか?なぜあなたは "s"を選んだのですか? – shosh
@shoshあなたは 'S'を選んだ。静的メソッド 'g'のジェネリック型のパラメータ'
'を宣言しました。' s'パラメータと 'i'パラメータの両方に' S'を使うのは意味があるようです。 's'を' i.toInt() ' – Eran別のオプション: 'public static
int g(S s、I i)'。テストされていない、おそらくあなたのメッセージの本文で動作しません。 –