我正在用android构建一个简单的计算器,我已经使它可以使用简单的x运算符x形式工作,但是我试图使其与两个以上的令牌一起工作,并且使用括号。
我正在使用附加库进行解释。
编辑:解释程序类的文档: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中?
最佳答案
但是当我在Android中使用它时,toString()
方法抛出一个nullpointerexception
它不是。您甚至都不用那种方法。
因为interpreter.get()
方法返回null。就像写:
null.toString();
就是这样。