在一個方法返回一個泛型的情況下,將泛型類聲明爲一個返回類型與僅在類級別聲明相比有什麼好處?Java泛型類定義爲返回類型還是在類級別?
//case #1
public interface Reaper<T> {
<S extends Foo> S save(S entity);
<S extends Foo> S saveWithOptions(S entity, Object[] params);
}
。
//case #2
public interface Reaper<T, S extends Foo> {
S save(S entity);
S saveWithOptions(S entity, Object[] params);
}
在情況#2,我不必重複<S extends Foo>
每個因爲它在接口的聲明返回S
,但是當涉及到使用我不得不將其定義爲Reaper<MyType, MyFooSubType>
方法。除此之外,是否有任何重大差異和/或利益?