java 错误:需要 int 类型不可转换

Ita*_*209 0 java netbeans

这段代码有什么问题?

int  amount= (int)  amountSpnr.getValue();  // 1
float total = (float) productData[3]*amount; // 2
total2pay+=total;
totalFld.setText(total2pay+"");
model.addRow(new Object[]{productData[0], productData[1],productData[2],productData[3], amount, total});`
Run Code Online (Sandbox Code Playgroud)

说:

不可转换类型
(对于第一行)- 需要int找到Object
(对于第二行)- 需要float找到Object

我能做些什么?

Ank*_*hag 5

您不能将 Java 中的对象转换为原始对象(它们各自的包装类除外)。

尝试使用这个:

    Object obj1 = amountSpnr.getValue();
    Object obj2 = productData[3];

    if (obj1 instanceof Integer) {
        int amount = (Integer) obj1; // 1
    }

    if (obj2 instanceof Float) {
        float total = (Float) obj2; // 2
        total *= amount;
    }
Run Code Online (Sandbox Code Playgroud)

在上述情况下,Object将向下转换为Integer类型,然后将其拆箱为原始整数。的情况也是如此Float

注意:请务必在执行向下转型之前添加instanceof检查,以确保您最终不会得到CastCastException.