Java 泛型使用类型不一致?

Java 泛型使用类型不一致?,java,generics,Java,Generics,这是我的最后一节课 public class ActivitiesSQL implements Activities { ... @Override public boolean add( Activity e ) { throw new UnsupportedOperationException( "Not supported yet." ); //To change body of generated methods, choose Tools | Templates.

这是我的最后一节课

public class ActivitiesSQL implements Activities {
  ...

  @Override
  public boolean add( Activity e ) {
    throw new UnsupportedOperationException( "Not supported yet." ); //To change body of generated methods, choose Tools | Templates.
  }

  @Override
  public boolean remove( Object o ) {
    throw new UnsupportedOperationException( "Not supported yet." ); //To change body of generated methods, choose Tools | Templates.
  }
}

public interface Activities extends Repository<Activity, ActivityId> {
    ...
}

public interface Repository<T, ID> extends Set<T> {

  public abstract T findById( ID id );
}
公共类活动SQL实现活动{
...
@凌驾
公共布尔添加(活动e){
抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。
}
@凌驾
公共布尔删除(对象o){
抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。
}
}
公共接口活动扩展了存储库{
...
}
公共接口存储库扩展集{
公共摘要T findById(ID);
}

我试图理解的是,为什么生成的代码是
remove(Object…
add(Activity…
)。为什么不
remove(Activity…

假设要扩展的
集是
java.util.Set
,那么
remove()的参数
是类型
对象
,因为它是在
java.util.Set
中定义的

您可以在
存储库
中定义自己的
remove(T)
,并根据需要委托给
Set#remove()
,但这样就不再是
@覆盖了


另请参见和,因为这是您的基本类型声明的。但是
add
remove
AFAIK来自同一个地方,所以它们不应该都以对象或活动结束吗?在我的实现类中,remove方法在哪里,您正在实现/覆盖、定义?我想我从来没有想到我认为这是我正在做的事情,但在场景中的定义不一致。