【发布时间】:2021-01-25 16:47:56
【问题描述】:
我有课堂响应
public class Response<T extends ResponseData> {
private final T data;
//other fields, getters, setters ...
}
和空接口ResponseData:
public interface ResponseData {
}
它将任何对象作为数据,但该对象必须实现我创建的“空”接口,它只是为了强制“数据”元素内返回的所有类都具有相同的超类型
现在的问题是我需要在数据元素中返回一个List,但是:
-
我觉得创建一个
ResponseData实现并不干净,它仅用作我的List的包装器 -
我不能直接返回
List,因为它不属于我的代码,因此我不能让它实现标记接口(@987654327@)
除了说我应该删除标记接口并允许在数据元素中返回任何对象之外,还有其他解决我的问题的方法吗?
nb:我的标记接口的目的是使任何创建的类将在响应中的数据元素内返回,对于任何阅读它们的人来说,清楚它们存在的目的
n.b. :如上面第 1 点所述,我知道存在此解决方案:
class ResponseDataWrapper implements ResponseData{
private final List<SomeType> responseList;
//getters,setters
}
但它并不干净,因为在这种情况下,List 和响应中的“数据”元素之间没有必要存在一层嵌套(即包装类)
【问题讨论】:
标签: java spring spring-boot spring-mvc design-patterns