空指针执行处理程序

时间:2015-04-29 10:03:46

标签: java android

我在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();

5 个答案:

答案 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>);