我想声明一个空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;
}
答案 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)];
}