Java 如何将类的动态数组传递给vararg?
我想创建一个类的动态数组来传递给vararg。这可能吗?如果不是,动态创建普通类数组的最佳方法是什么?下面的代码给出了下面的错误 代码-Java 如何将类的动态数组传递给vararg?,java,Java,我想创建一个类的动态数组来传递给vararg。这可能吗?如果不是,动态创建普通类数组的最佳方法是什么?下面的代码给出了下面的错误 代码- private void validate(Validator vt, Object form, BindingResult errors, Class<?>... c){ vt.validate(form, c); } private void validate(Type type, BindingResult errors){
private void validate(Validator vt, Object form, BindingResult errors, Class<?>... c){
vt.validate(form, c);
}
private void validate(Type type, BindingResult errors){
Validator vt = new Validator();
List groups = new ArrayList();
if(form.isAvailable()){
groups.add(Available.class);
}
if(form.isNotAvailable()){
groups.add(NotAvailable.class);
}
if(groups.size()>0){
validate(vt, form, errors, groups.toArray());
}
}
private void validate(验证器vt、对象表单、BindingResult错误、类…c){
验证(表格c);
}
私有void验证(类型,BindingResult错误){
Validator vt=新的验证器();
列表组=新的ArrayList();
如果(form.isAvailable()){
groups.add(Available.class);
}
if(form.isNotAvailable()){
groups.add(NotAvailable.class);
}
如果(groups.size()>0){
验证(vt、表单、错误、组.toArray());
}
}
错误-
The method validate(Validator, Object, BindingResult, Class<?>...) is not applicable for the arguments (Validator, Field, BindingResult, Object[])
验证方法(验证器、对象、BindingResult、类…)不适用于参数(验证器、字段、BindingResult、对象[])
返回的数组是对象[],不能强制转换为类[]。请尝试改用类似的方法:groups.toArray(新类[groups.size()])
,它应该返回您要查找的数组类型。返回的数组是一个对象[],不能强制转换为类[]。尝试使用类似的命令:groups.toArray(新类[groups.size()])
,它应该返回您要查找的数组类型。只需执行此操作
private void validate(ValidationTool vt, Object form, BindingResult errors, Class[] c){
vt.validate(form, c);
}
就这么做吧
private void validate(ValidationTool vt, Object form, BindingResult errors, Class[] c){
vt.validate(form, c);
}
尝试将列表和ArrayList参数化为 列表
尝试将列表和ArrayList参数化为 列表
@Henrick Gustafsson-仅此一点并不能解决问题,但结合了如下参数化实例化-List>();-解决了这个问题。@Henrick Gustafsson-这本身并不能解决这个问题,但与像这样的参数化实例化结合在一起-List>();-已解决问题。@yasser souri将在该位置修复问题,但我有其他位置需要vararg类列表。@yasser souri将在该位置修复问题,但我有其他位置需要vararg类列表。