我尝试运行以下代码。它编译,但抛出ClassCastException。如果有人能帮助我找出原因,我会很高兴。
double costprice = 0;
Object[] possibilities = null;
costprice = (double) JOptionPane.showInputDialog(
alphaPOS,
"Cost Price:",
"Enter Values",
JOptionPane.PLAIN_MESSAGE,
null,
possibilities,
"");
答案 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返回一个对象,无法将其转换为双精度。