我想这样做:sum += castObjectToNumber(value)
和castObjectToNumber
应该以某种方式是这样的:如何从方法中返回一个对象来计算它?
private Number castObjectToNumber(Object value) {
if(value instanceof Integer) {
return (int)value;
} else if(value instanceof Float) {
return (float) value;
} else if(value instanceof Double) {
return (double) value;
} else if(value instanceof Long) {
return (long) value;
} else if(value instanceof Byte) {
return (byte) value;
} else if(value instanceof Short) {
return (short) value;
}
}
我无法改变,我得到Object类型的价值,我想这是一个通用的解决方案。这里我的问题是,如果我返回一个Number对象,因为这是所有这些类型唯一共同的东西,所以我不能使用它的+=
运算符。那么我怎么在Java中做到这一点?我想我确实选择了错误的返回类型,因此它不起作用,但我不确定什么是正确的。
你能告诉我们为什么你要完成这个任务吗?自动装箱将完成你想要的大部分,但你可能需要施放。 + =运算符只能用于基元。 – stdunbar
Autoboxing似乎没有检测到它是一个数字,而是一个双重数字,而不是一个复杂的对象。因此我认为我必须亲自去做这件事。 – CodeShark