我有一个函数使用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))!!!! 那究竟是什么错误?
答案 0 :(得分:2)
您无法将其投放到int
,因为它没有返回int
!它返回String
,从Object[] possibleMode = { "M-Sequence", "Gold Code"};
中选择。
您可以将其转换为String
,然后让您的方法返回String
。
或者,如果您需要方法来返回索引:
return Arrays.asList(possibleMode).indexOf(selectedValue);