1

不工作:

final Object[] stringsMenu;
Vector auxMenu = new Vector();
final IntVector optionsMenu = new IntVector();
        auxMenu.addElement("ficha");
        optionsMenu.addElement(1);
        auxMenu.addElement("ficha2");
        optionsMenu.addElement2);
        auxMenu.addElement("ficha3");
        optionsMenu.addElement(3);
    UiApplication.getUiApplication().invokeLater(new Runnable()
    {
        public void run()
        {
        try
        {
            int[] optionsintMenu = optionsMenu.getArray();
                    switch (Dialog.ask("Info:", stringsMenu, optionsintMenu, 0))
                    {
                      ...
                    }
                }
            }
        } ..................

在职的

final Object[] stringsMenu;
Vector auxMenu = new Vector();
final IntVector optionsMenu = new IntVector();
        auxMenu.addElement("ficha");
        optionsMenu.addElement(1);
        auxMenu.addElement("ficha2");
        optionsMenu.addElement2);
        auxMenu.addElement("ficha3");
        optionsMenu.addElement(3);
    UiApplication.getUiApplication().invokeLater(new Runnable()
    {
        public void run()
        {
        try
        {
                    switch (Dialog.ask("Info:", stringsMenu, new int[]{1,2,3}, 0))
                    {
                      ...
                    }
                }
            }
        } .....................

给我一个内部 IndexoutofboundsException。知道发生了什么吗?

4

1 回答 1

1

而不是getArray()尝试使用toArray().

根据文档:

到数组:

公共 int[] toArray()

检索底层存储的副本。结果数组被修剪。

获取数组:

公共 int[] getArray()

检索向量值。该数组未修剪,也不是副本。

数组没有修剪,这可能是你得到 indexOutOfBound 的原因

于 2012-06-18T13:13:24.213 回答