2015-04-02 79 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)]; 
}