raf*_*ian 1 java generics types
在方法返回泛型的情况下,与仅仅在类级别声明相比,将泛型类声明为返回类型是否有任何好处?
//case #1
public interface Reaper<T> {
<S extends Foo> S save(S entity);
<S extends Foo> S saveWithOptions(S entity, Object[] params);
}
Run Code Online (Sandbox Code Playgroud)
.
//case #2
public interface Reaper<T, S extends Foo> {
S save(S entity);
S saveWithOptions(S entity, Object[] params);
}
Run Code Online (Sandbox Code Playgroud)
在#2的情况下,我不必<S extends Foo>
为每个返回的方法重复,S
因为它是在接口中声明的,尽管在使用时我必须定义为Reaper<MyType, MyFooSubType>
.除此之外,是否有任何重大差异和/或好处?