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