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