コンテナのすべての子のテキストフィールドを取得する必要があります。ウィケットは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);
}
それはうまくいきます、なぜそれが起こるのですか?私が見る限り、両方の方法が機能するはずです