[英]How to cast objects in an array with multiple classes?
我有一個包含JTextField和JComboBox對象的JComponent對象數組。 我選擇制作一個數組而不是兩個數組以提高效率。 但是,如果我遍歷對象,則似乎無法正確轉換它們,因為我的IDE在示例代碼的最后一行中無法識別.setText()方法。 如何正確投放物品?
JComponent[] items = {JTextField1, JComboBox1};
for (JComponent item : items) {
if (item instanceof JTextField) {
item = (JTextField) item;
item.setText(null);
}
else {
item = (JComboBox) item ;
item.setSelectedIndex(-1);
}
}
像這樣簡單嗎
if (item instanceof JTextField) {
((JTextField) item).setText(null);
}
else {
((JComboBox) item).setSelectedIndex(-1);
}
當您遍歷List時,每個item
變量都被視為JComponent
。 但是您需要的是為特定子類型(例如JTextField
)調用方法。 因此,解決方案是在調用所需方法之前將item
變量轉換為特定的子類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.