在一个方法返回一个泛型的情况下,将泛型类声明为一个返回类型与仅在类级别声明相比有什么好处?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>
方法。除此之外,是否有任何重大差异和/或利益?