別の (型付きの) クラスから継承された、型付きの List パラメーターを持つメソッドに問題があります。
シンプルにしましょう:
public class B<T> {
public void test(List<Integer> i) {
}
}
B クラスには役に立たないジェネリック T があり、test() は整数リストが必要です。
今私がする場合:
public class A extends B {
// don't compile
@Override
public void test(List<Integer> i) {
}
}
「タイプ A のメソッド test(List) は、スーパータイプ メソッドをオーバーライドまたは実装する必要があります」というエラーが表示されますが、これは発生すべきではありません。
しかし、リストのタイプを削除することは機能します...ただし、クラスジェネリックには依存しません。
public class A extends B {
// compile
@Override
public void test(List i) {
また、型付きリストを使用するために、以下の役に立たないジェネリックを定義します
public class A extends B<String> {
// compile
@Override
public void test(List<Integer> i) {
B のジェネリックは test() リストの型に影響を与えるべきではありません。誰が何が起こっているのか考えていますか?
ありがとう