Мне кажется, что я упускаю что-то ослепительно очевидное, так что низко висящий фрукт для гуру Java:
У меня есть код, который выглядит так:
private static void myFunc(JComponent c) {
if (c instanceof JPanel) {
//stuff
}
else if (c instanceof JMenu) {
// other stuff
}
}
Несмотря на то, что JPanel и JMenu являются подклассами JComponent, первый instanceof
выдает ошибку:
Incompatible conditional operand types JComponent and JPanel
Хотя второй работает нормально. Почему он думает, что мой JComponent
никогда не может быть JPanel
?