【发布时间】:2021-05-10 11:58:51
【问题描述】:
我正在尝试创建一个通用接口,因为这些方法几乎用于我拥有的所有服务中,但是当我尝试实现这些方法时,我得到的只是“方法不会覆盖其超类中的方法”。
@Service
public interface CustomInterface {
<T, R> List<T> get(final R req);
<T> T getById(final String id);
<T, R> T create(final R req);
<T, R> T update(final String id, final R req);
<T, R> T patch(final String id, final R req);
<T> T delete(final String id);
}
///// This is the implementation of one of the methods!
@Override
public CustomerResponseObject create(final CustomObject req) {
return null;
}
我做错了什么?我真的认为这会奏效!
【问题讨论】:
-
不确定为什么要在每种不同的方法上声明 T 和 R。似乎 T 和 R 应该是接口的泛型类型参数。即 CustomInterface
-
T 可以是接口类型,是的,但 R 可以是每个方法上的不同对象。所以 R 需要特定于方法
标签: java spring spring-boot generics interface