2013-04-27 57 views
0

我有一个使用下面的代码从here如下功能:的Java:如何从“JOptionPane.showInputDialog”返回选择为“INT”,而不是“对象”

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))!!!! 那到底是什么错误?

回答

2

你不能将它投射到int,因为它没有返回int!它返回String,从Object[] possibleMode = { "M-Sequence", "Gold Code"};中选择。

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

或者,如果你需要的方法返回一个索引:

return Arrays.asList(possibleMode).indexOf(selectedValue); 
相关问题