W projekcie Spring Data CrudRepository zapewnia zaawansowaną funkcjonalność CRUD dla zarządzanej klasy encji.Co to znaczy <S extends T> save (S entity); w Spring Repository?
public interface CrudRepository<T, ID extends Serializable>
extends Repository<T, ID> {
<S extends T> S save(S entity);
T findOne(ID primaryKey);
Iterable<T> findAll();
Long count();
void delete(T entity);
boolean exists(ID primaryKey);
// … more functionality omitted.
}
W ogóle, wiem co „S rozszerza T” oznacza, że to jest S, typ powrót zapisać operację, musi być podtypem T. Dlaczego jest to konieczne dodawanie takich jak ograniczenie? Myślę, że byłoby dobrze robi coś takiego:
T save (T entity);
jak w
void delete(T entity);
Mam google znaleźć więcej pomocy, a ja zorientowali się następujące pytanie na StackOverflow sobie, ale to isn” t naprawdę jasne dla mnie:
Spring CrudRepository: why to invent a new generic type S
dziękuję.
Myślę, że masz rację. 'S' jest zbędny, a projekt sygnatury jest błędem. – ZhongYu