假设我有一个类是其他类的父类,并且包含布尔值标志,指示在处理过程中出现问题。例如:
class BaseClass
{
private bool error;
....
}
该类的子级用于处理。
实现服务接口的类使用它:
public interface MyService
{
public ClassA execute1();
public ClassB execute2();
public List<ClassC> execute3();
}
ClassA
,ClassB
和ClassC
从BaseClass
扩展。
实现上述接口的类的实例在其他类(例如Spring @Service
)中使用,其中包含服务列表:
List<MyService> services;
在服务类中,还有一个方法可以在几个同时运行的线程中调用MyService实现的实例。签名是
public <T> List<T> callServices(Function<MyService, T> callback)
我的问题是-在callServices方法内部如何返回带有错误标志集的ClassA,ClassB或List的空对象?
我想到了类似的东西
public <T extends BaseClass> List<T> callServices(Function<MyService, T> callback)
但这不适用于List<ClassC>
。
我们不知道确切的类型,并且存在擦除操作。问题出在List<ClassC>
。我想到的是在存在错误标志的情况下向该方法传递一个额外的参数,但是我想知道是否还有其他更通用的方法来做到这一点。
答案 0 :(得分:0)
where T: new()
并将错误初始化放入默认构造函数中。反序列化将清除错误。有时,即使不对T进行反序列化也可以。