Dynamically Evaluate expression in java
I am sure many people had already stumbled on this and recently I too became one of them . I was working on an assignment which needed some run time evaluation of expression. These expressions were not very complex of nature. They were pretty much like assign a variable with value 0 if that variable was null
something on the lines of : abc=abc==null?0:abc
or something like abc=abc=='D'?abc+'B':abc+'C'
now there was the way to build a kind of parser which parses these equations and provide the output , but every new requirement might need a enhancement to the parser.
Then going back to the basics I started googling around for solutions and stumbled across
http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/
This is basically a script engine (what the browsers internally might be using ) to do evaluation of javascript method like Eval.
And to my surprise it works pretty well . I understand there are pretty limitations to this engine ( as I read in of the blogs that it has issues with some regular expressions , not exactly sure which case was he mentioning ) , but it satisfies all the basic expressions.
This allowed me to store these expressions in some external properties files and invoke it dynamically and calculate the expressions.
May be worth trying if someone is looking for some utility under java.