我正在尝试实施以下系统:
DtoMapper
:这是一个接口,用于定义任何第三方映射器应将对象返回为的合同
public interface DtoMapper<T> {
/**
* Converts list of T into FooResponse
* @param List of T
* @return FooResponse
*/
FooResponse convertToFooResponse(final List<T> rewards);
FooMapper
:实现DtoMapper
传递一个Bar
as方法的参数列表,但是编译器不喜欢我对方法实现的替代,而是想要第二个实现(底部)。
public final class FooMapper implements DtoMapper {
@Override
FooResponse convertToFooResponse(final List<Bar> listOfBars) {
... Logic
}
@Override
public convertToFooResponse(final List listOfBars) {
... I dont want this
}
如何使我的界面符合此要求,以便将来say的另一种实现public convertToFooResponse(final list<Snafu> listOfSnafus);
?
您需要明确实现DtoMapper<Bar>
而不是DtoMapper
。
例子:
public interface DtoMapper<T> {
/**
* Converts list of T into FooResponse
* @param List of T
* @return FooResponse
*/
FooResponse convertToFooResponse(final List<T> rewards);
}
public class FooMapperImplementation implements DtoMapper<Bar> {
@Override
public FooResponse convertToFooResponse(List<Bar> rewards) {
return null;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句