【发布时间】:2022-10-23 13:54:59
【问题描述】:
我需要转换表单的验证结果,用java.util.Set<javax.validation.ConstraintViolation<dox.web.dto.RegisterFormDTO>>表示,其中dox.web.dto.RegisterFormDTO是我需要验证的表单之一。为此,我创建了一些方法
public static void process(Set<ConstraintViolation<RegisterFormDTO>> validates) {
...
}
实际上,这会产生转换。但是,问题在于,除了RegisterFormDTO,我还有许多其他不同的表单,我想创建一种通用方法来转换所有表单的验证结果,特别是因为在方法中使用表单本身并不是暗示.表单本身不从任何其他类扩展,即只是 Object,这样做是合乎逻辑的:
public static void process(Set<ConstraintViolation<Object>> validates) {
...
}
但是,由于某种原因,它没有滚动,它返回一个错误:java: incompatible types: java.util.Set<javax.validation.ConstraintViolation<dox.web.dto.RegisterFormDTO>> cannot be converted to java.util.Set<javax.validation.ConstraintViolation<java.lang.Object>>。我已经尝试过,所以Set<ConstraintViolation<? extends Object>>,它是一样的,所以Set<ConstraintViolation<? super Object>>。这一切都不是滚动的。结果,我为每个表单创建了相同的方法,只是方法参数中的类型不同。
有人可以告诉我如何使该方法对所有形式都通用吗?
【问题讨论】: