这段代码有什么问题?
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
我能做些什么?
您不能将 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.
| 归档时间: |
|
| 查看次数: |
3192 次 |
| 最近记录: |