强制转换double时的类转换异常

时间:2014-10-18 07:54:39

标签: java casting double joptionpane

我尝试运行以下代码。它编译,但抛出ClassCastException。如果有人能帮助我找出原因,我会很高兴。

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

2 个答案:

答案 0 :(得分:6)

JOptionPane.showInputDialog()返回Object(@SeleenVirtuose的信用额),无法转换为double,使用Double.parseDouble()将字符串解析为double。

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,只需传递null作为参数(除非您已将变量更改为其他位置)

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

答案 1 :(得分:2)

JOptionPane.showInputDialog返回一个对象,无法将其转换为双精度。