这是我的最后一堂课。
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 );
}
我想要了解的是生成的代码为remove( Object...
和add( Activity ...)
的原因。为什么不是remove( Activity ... )
?
答案 0 :(得分:3)
假设您扩展的Set
为java.util.Set
,remove()
的参数为Object
类型,因为这是java.util.Set
中定义的方式。
您可以在remove(T)
中定义自己的Repository
,如果您愿意,可以委托给Set#remove()
,但之后不再是@Override
。