我需要获取容器的所有子文本字段,检票口提供了一个名为visitChildren的方法
然后我做类似的事情:
(FormComponent<?>[]) visitChildren(TextField.class).toList().toArray();
这个例子不起作用,我得到的例外是:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.apache.wicket.markup.html.form.FormComponent;
但如果我这样做:
List<Component> list = visitChildren(TextField.class).toList();
FormComponent<?>[] array = new FormComponent[list.size()];
for (int x = 0; x < list.size(); x++) {
array[x] = (FormComponent<?>) list.get(x);
}
它工作,为什么会发生这种情况?据我所知,这两种方法都应该有效