我试图在surfaceView上生成10个随机位置以绘制10个圆圈。 下面的代码为x和y坐标分配了一个随机浮点值,但是我一直在随机值赋值上接收一个nullpointer异常,并且无法找出原因。
rndX = new float[10];
rndY = new float[10];
for(int i=0;i<rndX.length;i++)
{
//get random x and y values
rndX[i] = (float)generator.nextInt(surface.getWidth());
rndY[i] = (float)generator.nextInt(surface.getHeight());
}
答案 0 :(得分:1)
以下工作正常。
float[] rndX = new float[10];
float[] rndY = new float[10];
int width = 100;
int height = 100;
Random generator = new Random(System.currentTimeMillis());
for(int i=0;i<rndX.length;i++){
rndX[i] = (float)generator.nextInt(width);
rndY[i] = (float)generator.nextInt(height);
}
导致NullPointerException
的原因可能是surface
或generator
个变量之一未初始化。
答案 1 :(得分:1)
你为什么不尝试:
Random rand = new Random();
rndX = new float[10];
rndY = new float[10];
for(int i=0;i<10;i++)
{
//get random x and y values
rndX[i] = rand.nextFloat();
rndY[i] = rand.nextFloat();
}