2014-10-18 3 views
-2

Я пробовал использовать следующий код. Он компилируется, но генерирует исключение ClassCastException. Я был бы очень рад, если бы кто-нибудь мог помочь мне понять, почему.Класс Cast Исключение при литье double

double costprice = 0; 
Object[] possibilities = null; 
costprice = (double) JOptionPane.showInputDialog(
        alphaPOS, 
        "Cost Price:", 
        "Enter Values", 
        JOptionPane.PLAIN_MESSAGE, 
        null, 
        possibilities, 
        ""); 

ответ

6

JOptionPane.showInputDialog() возвращает набор Object (кредиты @SeleenVirtuose), которые не могут быть отлиты в double, используйте Double.parseDouble() разобрать строку как дважды.

costprice = Double.parseDouble(JOptionPane.showInputDialog(
       alphaPOS, 
       "Cost Price:", 
       "Enter Values", 
       JOptionPane.PLAIN_MESSAGE, 
       null, 
       possibilities, 
       "")); 

Кроме того, вы можете все это на одной линии

Как вы объявляете переменную double и затем установить сразу, вы можете также объявить и присвоить новое значение в одной строке

double costprice = Double.parseDouble(JOptionPane.showInputDialog(
      alphaPOS, 
      "Cost Price:", 
      "Enter Values", 
      JOptionPane.PLAIN_MESSAGE, 
      null, 
      possibilities, 
      "")); 

Кроме того, как переменная possibilities равна нулю, просто передать null в качестве параметра (если вы не изменили переменную где-то еще)

double costprice = Double.parseDouble(JOptionPane.showInputDialog(
      alphaPOS, 
      "Cost Price:", 
      "Enter Values", 
      JOptionPane.PLAIN_MESSAGE, 
      null, 
      nulll, 
      "")); 
+0

Спасибо SOO много :) – Tsar

+0

@ShifaTsar Нет проблем! – SamTebbs33

+1

Используемый метод возвращает «Объект», который пользователь выбрал из предоставленного 'Object []'. Это все еще - конечно - не «двойник». – Seelenvirtuose

2

JOptionPane.showInputDialog возвращает объект, который нельзя сбрасывать в двойное.

+0

Используемый метод возвращает «Объект», который пользователь выбрал из предоставленного 'Object []'. Это все еще - конечно - не «двойник». – Seelenvirtuose

+0

@Seelenvirtuose моя ошибка, я смешался с другим вариантом showInputDialog, который возвращает строку. – Eran

Смежные вопросы