将 MenuContainer 转换为容器

convert MenuContainer to Container

我有一个带有 Jmenulist 的 Jmenu。我可以使用

访问容器(JMenu)的所有组件(Jmenulist)
for (Component c : mnFile.getMenuComponents())
    {
        System.out.println(c.getName());
    }

我有另一个函数接受父容器(它有所有其他容器,包括 JMenu)并递归地做一些事情。

for (Component c : cont.getComponents()){
/// do something
}

此函数不识别 Jmenulist 项目,因为它们只能由 getMenuComponents 迭代。有什么办法可以投射物体或事先知道它即将到来的 Jmenu class

您可以使用 java 运算符 instanceof 来测试传入的对象是 JMenu。

Object o = some JMenu

....

if (o instanceof JMenu) {
  JMenu menu = (Jmenu) o;
  ...
}