我在FourActivity Class中创建了这个函数:
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();
答案 0 :(得分:1)
fourActivity
未实例化,这就是您获得NullPointerException
的原因。
如果这是一个真正的活动,你不应该像那样使用它,而是创建和使用静态方法:
FourActivity.getRandomNumber();
答案 1 :(得分:1)
您忘记创建FourActivity
否则该方法应为static
,如下所示
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();
答案 2 :(得分:1)
成功
int randomNumber;
FourActivity fourActivity = new FourActivity();
randomNumber= fourActivity.getRandomNumber();
Toast.makeText(FinalActivity.this,"Random Number is"+randomNumber ,Toast.LENGTH_SHORT).show();
答案 3 :(得分:0)
因为您没有instantiate fourActivity
:
FourActivity fourActivity = new FourActivity();
但是如果你的函数是静态的,你可以像这样使用它:
FourActivity.getRandomNumber();
答案 4 :(得分:0)
在您的班级中创建FourActivity的实例;
FourActivity fourActivity;
fourActivity = new FourActivity (<your context>);