我正在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专门?
答案 0 :(得分:8)
但是当我在Android中使用它时,
toString()
方法会抛出nullpointerexception
不是。你甚至没有进入那种方法。
因为interpreter.get()
方法返回null。这就像写作:
null.toString();
这就是发生的事情。