Java 约束的泛型集合异常
我正在编写一些使用JSR-303验证来测试请求对象的服务代码。我想做的是在验证失败时抛出一个自定义RuntimeException,其中包含Java 约束的泛型集合异常,java,generics,Java,Generics,我正在编写一些使用JSR-303验证来测试请求对象的服务代码。我想做的是在验证失败时抛出一个自定义RuntimeException,其中包含ConstraintViolations的Set 我的所有请求对象最终都实现了相同的接口,让我们调用它request。我认为有一个实现了Request的AbstractRequest,然后是AbstractRequest的一系列实现,例如MyRequest 作为例外,我尝试做的是: public class RequestViolationException
ConstraintViolations
的Set
我的所有请求对象最终都实现了相同的接口,让我们调用它request
。我认为有一个实现了Request
的AbstractRequest
,然后是AbstractRequest
的一系列实现,例如MyRequest
作为例外,我尝试做的是:
public class RequestViolationException extends RuntimeException {
private Set<ConstraintViolation<? extends Request>> violations;
public <T extends Request> RequestViolationException(Set<ConstraintViolation<T>> newViolations) {
this.violations = newViolations;
}
}
公共类RequestViolationException扩展了RuntimeException{
私有集不能使用泛型扩展异常:
事实上@JGilardi是正确的,你的构造函数接受
,但你试图将它分配给实例变量违规
,这是我知道你不能扩展带有异常的泛型,但我想要的是集合上的泛型,而不是异常。我想问的是,是否有一种方法可以拥有一组超级类/接口,我可以在其中轻松传递一组集合/超类。
Set<ConstraintViolation<MyRequest>> violations = validator.validate(myRequest);
if (violations.size() > 0) {
throw new RequestViolationException(violations);
}