如果我有一些類型聲明,如:測試基準類類型在編譯時
JCheckBoxMenuItem t1;
JRadioButtonMenuItem t2;
然後像我
addItem(JMenuItem i)
{
}
可以知道,如果i
是JCheckBoxMenuItem
方法或JRadioButtonMenuItem
型無當我用addItem(t1)
或addItem(t2)
調用它們時,它們的實例有 ???
如果我有一些類型聲明,如:測試基準類類型在編譯時
JCheckBoxMenuItem t1;
JRadioButtonMenuItem t2;
然後像我
addItem(JMenuItem i)
{
}
可以知道,如果i
是JCheckBoxMenuItem
方法或JRadioButtonMenuItem
型無當我用addItem(t1)
或addItem(t2)
調用它們時,它們的實例有 ???
那麼,你總是可以打電話t1.getClass()
,哪個會給你輸入對象的有效類。
與'instanceof'沒有太大區別# – Bozho 2010-07-21 12:19:15
你不能使用getClass和instanceOf因爲t1和t2沒有引用一個對象,我想在檢查運行時檢查編譯時間 – xdevel2000 2010-07-21 12:57:08
如果您需要基於對象類型的不同行爲,請不要使用相同的方法。製作不同的方法,接受不同的參數類型。
爲什麼你想避免的實例? – 2010-07-21 12:17:44
你是說't1'或't2'是'null',並且你想在'addItem'中檢查'i'的類型是?這是不可能的,因爲'null'不屬於某個類型。 – 2010-07-21 12:25:14