2015-04-02 76 views
0

我要声明一个空int就像你要做一个字符串做:String userName =""; 我需要一个空INT,因为我要选择一个数组(随机)图片:我如何可以声明空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; 
} 

回答

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

如果必须出于某种原因指定您int background变量的默认值, -1通常是可行的。您不能将一个int变量分配给除整数值之外的任何其他值(""String,因此不起作用)。

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

如果您需要变量指向“无”,可以考虑使用盒装型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)]; 
} 
0

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

对于像从数组中选择一个随机值那样简单的方法,您可能只需使用一行代码。

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