0

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

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”返回给主类,而不是“Object”。我尝试将返回值转换如下:

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))!!!!那么究竟是什么错误呢?

4

1 回答 1

2

你不能把它转换成一个,int因为它没有返回一个int!它正在返回一个String,它是从 中选择的Object[] possibleMode = { "M-Sequence", "Gold Code"};

您可以将其转换为 a String,并使您的方法返回 a String

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

return Arrays.asList(possibleMode).indexOf(selectedValue);
于 2013-04-27T12:15:16.303 回答