簡體   English   中英

如何在具有多個類的數組中強制轉換對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM