我必须使用现有的代码,但我没有找到这个符号的含义:Class<?>...
例如,它在方法中使用:
public static <T> HashSet<ConstraintViolation<T>> validate(Validator validator, T resource, Class<?>... groups) {
return (HashSet<ConstraintViolation<T>>) validator.validate(resource, groups);
}
像这样叫:
HashSet<ConstraintViolation<EntryDTO>> l = ValidationTools.validate(this.validator, entryDTO);
这是否意味着“团体”是有选择的?我发现了一个有趣的话题:What does Class mean in Java?,但它并没有真正回答我的问题.
谢谢你的回答
发布于 2014-11-19 05:58:03
您所链接到的第一个答案正确地告诉您Class<?>
是什么意思。...
称为varargs
,表示0或多个参数。因此,参数Class<?>...
是指任意类型类的任意数量的参数。
有关varargs
的更多信息,请参见https://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html
发布于 2014-11-19 05:56:25
这与Class<?>
无关。最后的三个点意味着最后的论点是一个varargs的论点。
有关更多信息,请查看Java文档和这个StackOverflow的答案。
发布于 2014-11-19 06:08:59
Class意味着这个变量是任何类型的类对象。这三个点意味着您可以在方法调用中传递任意数量的参数。
因此,这都是对ValidationTools.validate方法的有效调用:
ValidationTools.validate(this.validator, entryDTO);
ValidationTools.validate(this.validator, entryDTO, myString.getClass());
ValidationTools.validate(this.validator, entryDTO, myString.getClass(), myInteger.getClass());
以此类推,具有任意数量的类参数。
https://stackoverflow.com/questions/27018591
复制相似问题