Java 如何将类的动态数组传递给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){

我想创建一个类的动态数组来传递给vararg。这可能吗?如果不是,动态创建普通类数组的最佳方法是什么?下面的代码给出了下面的错误

代码-

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>();

此外,在转换为阵列时,请使用:

组。toArray(新类[ groups.size())


尝试将列表和ArrayList参数化为

列表>组=新 ArrayList>();

此外,在转换为阵列时,请使用:

组。toArray(新类[ groups.size())


@Henrick Gustafsson-仅此一点并不能解决问题,但结合了如下参数化实例化-List>();-解决了这个问题。@Henrick Gustafsson-这本身并不能解决这个问题,但与像这样的参数化实例化结合在一起-List>();-已解决问题。@yasser souri将在该位置修复问题,但我有其他位置需要vararg类列表。@yasser souri将在该位置修复问题,但我有其他位置需要vararg类列表。