私は定義し、オブジェクトのリストをパラメータとして取る抽象的なセッターを実装しようとしています。この簡単なアイデアの要点は次のとおりです。Listパラメータで汎用メソッドを実装する
public abstract class MyClass {
public abstract void setThings(List<?> things);
}
public class Bar extends MyClass {
private List<String> things;
@Override
public void setThings(List<String> things) {
this.things = things;
}
}
これは機能しません。私はMethod does not override method from its superclass
とboth methods have the same erasure, but neither overrides the other
を得ます。私は、消去に関連する後者のエラーを理解していますが、これを行う正しい方法を理解できません。私はいくつかの他のものを試しました:
public abstract <T> void setThings(List<T> things);
...その他いくつかを試しました。そして、私は他の質問/答えを見つけましたが、これに対処することに近づいていますが、確かに答えはありませんでした(少なくともそれは私には分かりませんでした)。私はthe tutorialsを読んだこともありません。私は何が欠けていますか?
ありがとう、私はあなたの例を行って、それはうまく動作しています。私はジェネリックスを研究するためにもう少し時間をかけなければならないでしょう。微妙なものの中には、 '?'、 'T'、' E 'などの使い方の違いなど、まだ少し神秘的です。救済できません! – Madbreaks