Java 封装JComboBox以确保字段为空

Java 封装JComboBox以确保字段为空,java,arrays,swing,jcombobox,Java,Arrays,Swing,Jcombobox,我有多个JComboBox元素,位于4个选项卡式窗格中。我希望能够将它们封装到对象[]中并调用removeAllItems()。然而,由于它是Object类型,我不能这样做。有没有一种方法可以将JComboBox元素放在数组中,并且仍然可以访问JComboBox方法 (下面我已经说明了我想做什么) 示例: Object[] combo_container = { winners_combo_box, bikes_combo_box, teams_combo_box, ri

我有多个JComboBox元素,位于4个选项卡式窗格中。我希望能够将它们封装到对象[]中并调用
removeAllItems()
。然而,由于它是Object类型,我不能这样做。有没有一种方法可以将JComboBox元素放在数组中,并且仍然可以访问JComboBox方法

(下面我已经说明了我想做什么)

示例:

Object[] combo_container = { winners_combo_box, bikes_combo_box,
            teams_combo_box, riders_combo_box };

for(Object item : combo_container) {
    item.removeAllItems();
}
您仍然可以创建JComboBox数组并将所有元素放入其中。警告只是告诉您JComboBox是一个泛型类,因此它需要
。但没关系,别理它

for(Object item : combo_container) {
    JComboBox box = (JComboBox) item;
    box.removeAllItems();
}
但这并不是一个好主意。为什么不使用JComboBox的数组呢?像这样:

JComboBox<String>[] combo_container = { winners_combo_box, bikes_combo_box,
            teams_combo_box, riders_combo_box };
for(JComboBox box : combo_container) 
   box.removeAllItems();
JComboBox[]组合容器={winners\u组合框,bikes\u组合框,
团队组合框、骑手组合框};
for(JComboBox:combo_容器)
box.removeAllItems();

当然,假设winners\u combo\u box、bikes\u combo\u box等是JComboBox类的对象

将数组声明为type
JComboBox
或在取出它们时将
对象
s强制转换。我知道,当将其创建为JComboBox时,它会给我一个关于推断泛型参数的奇怪警告。我假设我会给它对象的类型。您能用类型
JComboBox
JComboBox
说明这个想法吗?JComboBox需要这样的类型参数,这就是警告的含义。这应该是什么类型的?哦,对不起。是的,这是Java新版本中有很多变化的地方。若您知道combobox中存储的是文本,那个么传递就可以了。另一个想法是使用适当的名称添加@SuppressWarnings(应该在IDE中作为快速修复程序提供)。但不关心警告不是一个好主意。在这种情况下,它们只是组合框对象,预期将填充数据库元素(类型为string)。我认为字符串类型在这种情况下不起作用。感谢您的洞察力。在阅读了更多的内容后,我意识到最好将其设置为
JComboBox
。好吧,这让我有点困扰。我习惯于总是知道应该给出什么类型的参数。谢谢
JComboBox<String>[] combo_container = { winners_combo_box, bikes_combo_box,
            teams_combo_box, riders_combo_box };
for(JComboBox box : combo_container) 
   box.removeAllItems();