为什么toString()在Android SDK(Eclipse)中抛出NullPointerException?

时间:2014-01-08 18:42:25

标签: java android eclipse

我正在android中构建一个简单的计算器,我已经使它使用简单的x运算符x形式,但我试图使它使用超过2个令牌,并使用括号。

我正在使用附加库来进行解释。 编辑:口译员课程的培训:http://www.beanshell.org/javadoc/bsh/Interpreter.html

我尝试在java独立版中使用此代码并且工作正常:

public double evaluate(String express) {
    double value = 0;
    String answer = null;

    String base = "result = ";
    Interpreter interpreter = new Interpreter();

    try {
        interpreter.eval(base + express); 
        answer = interpreter.get("result").toString();//this line
        value = Double.parseDouble(answer);
    } catch (EvalError e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

但是当我在android中使用它时,toString()方法抛出了一个nullpointerexception,为什么会这样? 为什么在android专门?

1 个答案:

答案 0 :(得分:8)

  

但是当我在Android中使用它时,toString()方法会抛出nullpointerexception

不是。你甚至没有进入那种方法。

因为interpreter.get()方法返回null。这就像写作:

null.toString();

这就是发生的事情。