我怎样才能声明一个空int

时间:2015-04-02 02:07:19

标签: java android-studio int

我想声明一个空int,就像使用字符串一样:String userName =""; 我需要一个空int,因为我想从数组中选择一个(随机)图片:

public int[] mBackground = {
       R.drawable.heart,
       R.drawable.cane,
       R.drawable.watch
};

这是我用来从数组中获取随机图片的代码:

public int getBackground(){
int background = "";
    Random generate = new Random();
    int randomNumber = generate.nextInt(mBackground.length);

    background = mBackground[randomNumber];

    return background;
}

3 个答案:

答案 0 :(得分:1)

我不明白你的问题。你为什么需要初始化它?你甚至不需要变量。

此代码可以随意使用

public int getBackground(){
    Random generate = new Random();
    int randomNumber = generate.nextInt(mBackground.length);
    return mBackground[randomNumber];
}

但是,如果你想拥有一个可以做的变量

public int getBackground(){
    Random generate = new Random();
    int randomNumber = generate.nextInt(mBackground.length);
    int background = mBackground[randomNumber];
    return background;
}

答案 1 :(得分:1)

如果由于某种原因必须为int background变量指定默认值,-1通常是可行的。您无法将int变量分配给除整数值以外的任何值(""String,因此无法工作)。

    int background = -1;
    // ...
    if (background < 0) {
        // handle invalid value, perhaps assign a default
    }

如果您需要将变量指向&#34;没有&#34;,请考虑使用框内类型Integer,您可以将其初始化为null

    Integer background = null; // will throw NullPointerException if unboxed to int

否则,在您准备好分配变量之前,请不要声明变量。这样你就不必给它一个毫无意义的初始值。

    int background = mBackground[randomNumber];

或者您可以直接从方法中返回值,而不是将其分配给中间变量。

    return mBackground[randomNumber];

当你声明它时,你根本不必初始化一个局部变量。这是完全可以接受的。

    int background;

但是,您必须先分配一个值才能使用它。

这是您方法意图的最短陈述。

public int getBackground(){
    return mBackground[new Random().nextInt(mBackground.length)];
}

答案 2 :(得分:0)

在您给出的上下文中没有空int,空字符串是包含0长度序列的String。 int是原始数据类型,除了要声明为整数盒装对象之外,不能在有符号或无符号32位整数的参数之外取任何值,在这种情况下,您可以将其声明为null。

对于一个简单的方法,如从数组中选择一个随机值,您也可以使用单行。

public int getBackground(){
    return mBackground[new Random().nextInt(mBackground.length)];
}