Я пытался играть с mXparser. Интересно, можно ли передать аргументы через HashMap или любую другую структуру данных пары ключ-значение.
public static HashMap<String, Double> getArguments(){
HashMap<String, Double> hm = new HashMap<String, Double>();
hm.put("lendingRate", 3.0);
hm.put("borrowingRate", 5.0);
return hm;
}
expressionParser - это простая операция на основе mXparser. Аргументы можно передать, создав их экземпляры отдельно. Если это единственный аргумент, они могут быть переданы через функции. Но, если у нас есть 2 или более expressions
, как показано в примере, которые требуют больше аргументов.
public static void expressionParser(HashMap<String, Double> hm) {
System.out.println(hm.get("lendingRate"));
//Argument a = new Argument("lendingRate", 3);
//Argument b = new Argument("borrowingRate", 5);
Expression c = new Expression("lendingRate + 2%", a);
Expression d = new Expression("borrowingRate + 2", b);
System.out.println("Answers are \n 1) = " +c.calculate()+ "\n 2) = " + d.calculate());
}
public static void main(String[] args) {
HashMap<String, Double> hm = getArguments();
expressionParser(hm);
}