Java 空指针执行处理程序
我在FourActivity类中对此函数做了一个示例:Java 空指针执行处理程序,java,android,Java,Android,我在FourActivity类中对此函数做了一个示例: public int getRandomNumber(){ Random rnd=new Random(); int randomNumber=rnd.nextInt(100); if (randomNumber%2==1){ randomNumber=randomNumber+1; return randomNumber; } else return rand
public int getRandomNumber(){
Random rnd=new Random();
int randomNumber=rnd.nextInt(100);
if (randomNumber%2==1){
randomNumber=randomNumber+1;
return randomNumber;
}
else return randomNumber;
}
我试图通过这种方式在另一个类中访问此方法。但是它抛出了一个java.lang.NullPointerException
:
int randomNumber;
FourActivity fourActivity;
randomNumber= fourActivity.getRandomNumber();
Toast.makeText(FinalActivity.this,"Random Number is"+randomNumber ,Toast.LENGTH_SHORT).show();
fourActivity
未实例化,这就是为什么会出现NullPointerException
如果这确实是一个活动,您不应该这样使用它,而是创建并使用一个静态方法:
FourActivity.getRandomNumber();
您只是忘记了创建
FourActivity
否则,方法应该是静态的,如下所示
public static int getRandomNumber(){
Random rnd=new Random();
int randomNumber=rnd.nextInt(100);
if (randomNumber%2==1){
randomNumber=randomNumber+1;
return randomNumber;
}
else return randomNumber;
}
&把它当作
int randomNumber;
randomNumber= fourActivity.getRandomNumber();
因为您没有完成您的四项活动
:
FourActivity fourActivity = new FourActivity();
但如果您的函数是静态的,您可以这样使用它:
FourActivity.getRandomNumber();
成功
int randomNumber;
FourActivity fourActivity = new FourActivity();
randomNumber= fourActivity.getRandomNumber();
Toast.makeText(FinalActivity.this,"Random Number is"+randomNumber ,Toast.LENGTH_SHORT).show();
在类中创建FourActivity的实例
FourActivity fourActivity;
fourActivity = new FourActivity (<your context>);
FourActivity-FourActivity;
fourActivity=新的fourActivity();
简单的建议。当您得到一个空指针时,像这样,在异常发生之前放置一个调试标记,逐行检查每一行,看看什么是空的。初始化类中的fourActivity。i、 e.FourActivity FourActivity=新的FourActivity();谢谢,错误已被删除。现在解决一个新问题。假设我已经生成了一个随机数,它是50,我想把它的一半存储在整数中。我是这样做的:public int getAnswer(int randomNumber){return int answer=randomNumber/2;}但是答案是错误的。为什么会这样???@user3537259这不是一个问题,这是一个简单的错误,我认为你最好调试你的代码,而不是让别人把你的问题告诉你:)@user3537259如果这能解决你的问题,别忘了