次のコード
public interface IGiveUp
{
void surrender(List<Class> l);
}
public class GiveUp implements IGiveUp {
@Override public void surrender(List<Class> l) {}
}
正常にコンパイルされます。しかし、未使用のジェネリック型パラメーターをインターフェイスに追加すると
public interface IGiveUp<X>
{
void surrender(List<Class> l);
}
コンパイルに失敗します (javac 1.6.0_23)
IGiveUp.GiveUp is not abstract and does not override abstract method surrender(java.util.List)
実装でジェネリックを指定するとコンパイルされます
public class GiveUp implements IGiveUp<Object>
またはメソッドパラメーターをジェネリック型ではないリストにする
void surrender(List l);