假设我有一个界面:
public interface IDto {
}
以及一个实现此接口(interface)的类:
public class UserProfileResponseDto implements IDto {
}
在另一个界面中我有:
public interface ISortingController {
public List<IDto> findAll();
}
在我的具体 Controller 中,我有:
public List<UserProfileResponseDto> findAll();
但它告诉我它一定是
public List<IDto> findAll();
有没有办法允许 public List<UserProfileResponseDto> findAll();
因为感觉应该被允许,因为 UserProfileResponseDto
实现IDto
。我问这个问题的原因是因为我觉得它使 Controller 类更加冗长,这将使维护和操作变得更容易。
最佳答案
您需要在 ISortingController
中声明一个类型参数像这样:
public interface ISortingController<D extends IDto> {
public List<D> findAll();
}
并且您的 Controller 实现需要说 implements ISortingController< UserProfileResponseDto>
.
关于java - 是否可以让方法签名成为其实现的接口(interface)的子类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58088829/