reflect
Использование ионов не должно использоваться, когда это не обязательно.В большинстве случаев причиной создания component
является добавление его в контейнер.Как только он добавлен туда, вы можете легко запросить их из контейнера, используя метод Container#getComponents
.
Проверьте этот пример:
JButton loadButton = new JButton("load");
JButton saveButton = new JButton("save");
JPanel panel = new JPanel();
panel.add(loadButton);
panel.add(saveButton);
for (Component component : panel.getComponents()) {
// ...
}
Чтобы оказать вам дополнительную помощь, вам нужно будет сказать нам, что вы хотите сделать с этим массивом.Я имею в виду, где вы хотите его использовать?
Если вы настаиваете на его использовании, то for
должно быть:
for (Field f : this.getClass().getDeclaredFields()) {
if (JComponent.class.isAssignableFrom(f.getType())) {
JComponent field = (JComponent) f.get(this);
components.add(field);
}
}