我想這樣做: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