Java:如何将“JOptionPane.showInputDialog”中的选择作为“int”而不是“Object”返回

时间:2013-04-27 12:12:49

标签: java swing joptionpane

我有一个函数使用here中的以下代码,如下所示:

public static Object generationMode(){
    Object[] possibleMode = { "M-Sequence", "Gold Code"};
    Object selectedValue = JOptionPane.showInputDialog(null,
            "Choose one", "Input",
            JOptionPane.INFORMATION_MESSAGE, null,
            possibleMode, possibleMode[0]);     
    return selectedValue;       
}

我在主类中调用此函数,它工作正常。但是,我想要将“int”返回给主类,而不是“对象”。我试图将返回值转换为:

public static int generationMode(){
    Object[] possibleMode = { "M-Sequence", "Gold Code"};
    int selectedValue = JOptionPane.showInputDialog(null,
            "Choose one", "Input",
            JOptionPane.INFORMATION_MESSAGE, null,
            possibleMode, possibleMode[0]);
    return (int) selectedValue;           // it breaks here 
}

但它不起作用。调试器在断点处说:(暂停(异常ClassCastException))!!!! 那究竟是什么错误?

1 个答案:

答案 0 :(得分:2)

您无法将其投放到int,因为它没有返回int!它返回String,从Object[] possibleMode = { "M-Sequence", "Gold Code"};中选择。

您可以将其转换为String,然后让您的方法返回String

或者,如果您需要方法来返回索引:

return Arrays.asList(possibleMode).indexOf(selectedValue);