Java中有確定自動裝箱是否完成的方法嗎?確定AutoBoxing是否已完成
例如
void functionInt(Integer i) {
//Determine if Integer was passed or int was passed. Is it possible?
}
int i = 1;
int ii = new Integer(1);
functionInt(i);
functionInt(ii);
被叫方能夠區分這2個電話?
Java中有確定自動裝箱是否完成的方法嗎?確定AutoBoxing是否已完成
例如
void functionInt(Integer i) {
//Determine if Integer was passed or int was passed. Is it possible?
}
int i = 1;
int ii = new Integer(1);
functionInt(i);
functionInt(ii);
被叫方能夠區分這2個電話?
functionInt
將始終通過Integer
,並且無法確定該Integer
是否由於自動裝箱而被創建。
你可以做的是創造重載函數:
void functionInt(Integer i);
void functionInt(int i);
/編輯
如果你有下面的類:
您可以撥打Foo.class.getConstructor(int.class).newInstance(new Integer(5))
沒有任何問題。檢查Constructor
的int.class
作爲參數,而不是java.util.Integer
,如果找不到java.util.Integer
,應該相當簡單。
我想創建一個函數,使用反射來調用Class上相應的構造函數。我將參數作爲Object Array傳遞,後來我需要調用構造函數,該構造函數接受原始int而不是Integer。否則,我將不得不進行大量的處理來確定正確的構造函數。 – 2012-07-15 00:23:00
@ vikky.rk如果這是你確切的問題,那麼你應該問這是你的問題。看我的編輯。 – Jeffrey 2012-07-15 00:39:11
我的目的是創建一個函數「public static
爲什麼?它對被調用者有什麼不同? – EJP 2012-07-15 10:39:45
@EJP:在下面Jeffrey的回覆中看到我的評論。 – 2012-07-15 23:22:01