首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定AutoBoxing是否已完成

确定AutoBoxing是否已完成
EN

Stack Overflow用户
提问于 2012-07-15 08:14:30
回答 1查看 165关注 0票数 1

在Java中有没有一种方法来确定自动装箱是否已经完成?

例如

代码语言:javascript
复制
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);

被呼叫者能区分这两个呼叫吗?

EN

回答 1

Stack Overflow用户

发布于 2012-07-15 08:18:36

functionInt将始终传递一个Integer,并且无法确定该Integer是否是自动装箱的结果。

您可以做的是创建重载函数:

代码语言:javascript
复制
void functionInt(Integer i);
void functionInt(int i);

/edit

如果您有以下类:

代码语言:javascript
复制
public class Foo {
    public Foo(int primitive) {
        System.out.println("Created!");
    }
}

您可以毫无问题地调用Foo.class.getConstructor(int.class).newInstance(new Integer(5))。如果找不到参数为java.util.IntegerConstructor,那么检查参数为int.class而不是java.util.Integer应该是相当简单的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11488400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档